我是Struts的新手,我想执行HelloWorld程序,但是当我在<filter>
中编写web.xml
标记时,我收到“请求的资源不可用”错误。
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_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>Struts 2</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
struts.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="helloworld" extends="struts-default">
<action name="hello" class="sagar.practice.HelloWorldAction" method="execute">
<result name="success">/HelloWorld.jsp</result>
</action>
</package>
</struts>
我将所有必需的struts jar作为用户库添加。
我正在访问索引页面:http://localhost:8080/practice/index.jsp
如果我从<filter>
文件中删除web.xml
代码,我可以访问index.jsp
页面,但如果我添加了<filter>
代码,则会显示“请求的资源不可用”错误
答案 0 :(得分:1)
您应该通过在devMode
中设置常量来启用struts.xml
。如果您想解决像您这样的问题,可以使用此模式。它提供了更多信息,因为它输出到正常模式中隐藏的控制台错误。
<constant name="struts.devMode" value="true" />
打开它后,您可能会发现您的应用程序部署了错误或不一致的库集。您可能会在控制台上打印出java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
,然后使用丢失的jar调整库集。
解决错误需要commons-lang3-3.1.jar
。
答案 1 :(得分:0)
使用以下
更改struts.xml中的此内容<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
参考链接:click here
如果您在struts中使用2.0或更高版本。使用以下过滤器。
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
答案 2 :(得分:0)
在Web.xml中进行以下更改
<welcome-file>/WEB-INF/index.jsp</welcome-file>
在struts.xml中
<result name="success">/WEB-INF/HelloWorld.jsp</result>
它可以帮助你。