2

我尝试创建一个新的操作类并将其添加到struts.xml,操作类成功编译,但是当我运行 tomcat 时,它在索引页面本身显示 The requested resource is not available 404 错误。

创建用户.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>
4

2 回答 2

4

Struts2 中的操作映射到从配置构建的 URL。当请求的 url 与操作名称和命名空间匹配时,就会执行它,否则调度程序会返回错误代码 404。Struts2 被实现为一个过滤器,它正在寻找在其配置中映射的请求。例如,如果我希望它过滤我将写入的所有 URLweb.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 来执行操作,请安装 config-browser 插件。

于 2013-11-08T14:44:40.833 回答
0

对于上述问题:“当在 struts.xml 中配置操作类时,请求的资源在 struts2 中不可用”我有一个建议。

将所有外部 jar 复制并粘贴到 lib(WebContent-->WEB-INF-->lib) 文件夹中,从构建路径中删除所有外部 jar (Project -->buildpath-->Configure Build path)

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

于 2015-05-06T09:54:59.530 回答