在struts.xml中配置操作类时,struts2中没有请求的资源

时间:2013-11-08 13:58:05

标签: java jsp tomcat struts2

我尝试创建一个新的动作类并将其添加到struts.xml,动作类已成功编译,但是当我运行tomcat时,它显示请求的资源在索引页本身上不可用404错误。< / p>

CreateUser.jsp

<s:form action = "CreateUserAction" >
    <s:textfield name = "name" label = "Name" />
    <s:textfield name = "userName" label = "User Name" />
    <s:submit value = "Register" />
</s:form>

CreateUserAction.java

public String execute() {
    setMessage("Hello " + getUserName());
    return "SUCCESS";
}

struts.xml中

<package name="default" extends="struts-default">
    <action name="CreateUserAction" class="com.ecommerce.action.CreateUserAction">
    <result name="SUCCESS">/success.jsp</result>
    </action>
</package>

2 个答案:

答案 0 :(得分:4)

Struts2中的操作映射到从配置构建的URL。当请求的url与动作名称和命名空间匹配时,则执行该命令,否则调度程序返回错误代码404。 Struts2实现为过滤器,它正在寻找在其配置中映射的请求。例如,如果我希望它过滤我将在web.xml

中写的所有网址
<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>

如果您在索引页面本身上说错误404,那么您应该问自己哪个URL对应于哪个URL以及通过配置将该操作映射到该URL。如果您需要更详细的图片说明配置是什么以及您可以输入哪些URL来执行操作,请安装config-browser插件。

答案 1 :(得分:0)

针对上述问题:&#34;在struts.xml中配置操作类时,struts2中没有请求的资源&#34; 我有个建议。

将所有外部jar复制并粘贴到文件夹lib中(WebContent - &gt; WEB-INF - &gt; lib) 从构建路径中删除所有外部jar(项目 - &gt; buildpath - &gt;配置构建路径)

我发现这个解决方案适用于带有Tomacat 7的eclipse Luna