【发布时间】:2012-04-12 23:42:06
【问题描述】:
我用 struts 2 实现了一个简单的例子。
但点击操作时出现此错误:
“请求的资源不可用”
好像apache服务器找不到jsp文件。
这是法语的错误。
Etat HTTP 404 - /StrutsTraining/classes/Hello.jsp
type Rapport d''état
message /StrutsTraining/classes/Hello.jsp
description La ressource demandée (/StrutsTraining/classes/Hello.jsp) n'est pas disponible.
我的 struts.xml :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<action name="action1" class="org.training.Hello">
<result name="Hello">classes/Hello.jsp</result>
<result name="goodBy">classes/GoodBy.jsp</result>
</action>
</package>
</struts>
我的 Web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>StrutsTraining</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
jsp文件位于:
/StrutsTraining/WebContent/WEB-INF/classes
【问题讨论】:
-
您将它们放在类文件夹中的任何特殊原因?
-
我认为有一个 struts2 插件可以在类路径中启用 JSP,如果这是您必须做的事情,请检查 struts2 插件注册表,但不要把它们放在那里会提供更快的解决方案。我会推荐 /WEB-INF/content 作为一个很好的起点,那么如果你决定使用非常棒的 struts2-conventions-plugin 并为自己节省很多时间,你会稍微舒服一些(默认情况下就是这样喜欢 JPS 生活)。
-
这是一个错误。没有理由将 jsp 放在类路径中。谢谢。