1

每个人。我在 struts2 命名空间上遇到问题..

首先,这是我的开发环境。服务器:tomcat(目前我的项目在ROOT文件夹中/tomcat/webapps/ROOT)框架:struts2

这是我的问题。假设有两页。admin_index.jsp 和 front_index.jsp 当我想从操作中调用 admin_index.jsp 时。我用

<package name="admin" namespace="/dl_adm" extends="struts-default">
  <action name="/index" method="index"class="kr.co.www2.controller.front.AdminMainController">
      <result name="success">/WEB-INF/jsp/admin/admin_index.jsp</result>
  </action>
</package>

它通过调用工作正常http://.../dl_adm/index.do

并称这对我来说有问题。

<package name="front" namespace="/" extends="struts-default">
  <action name="/index" method="index"class="kr.co.www2.controller.front.FrontMainController">
      <result name="success">/WEB-INF/jsp/admin/front_index.jsp</result>
  </action>
</package>

当我去的时候http://.../index.do,它给了404 ...

虽然我知道这namespace="/"是默认命名空间...

问题:

  1. 无论如何要忽略默认命名空间?因为我想使用它,/因为我只想通过http://.../没有命名空间的动作名称......

  2. 或者如果没有办法做到这一点。有什么建议么?

4

1 回答 1

1
  1. 无论如何要忽略默认命名空间?因为我想使用那个 / 因为我只想通过http://.../没有命名空间的动作名称..

不,您不能忽略默认命名空间。默认命名空间为空,如果您namespace在包声明中省略属性,则使用它。


  1. 或者如果没有办法做到这一点。有什么建议么?

我不会使用 xml 配置在动作名称中使用斜杠。操作映射器可能会错误地在操作名称中添加额外的斜杠以从 URL 推断映射。


所以你应该使用

<package name="front" namespace="/" extends="struts-default">
  <action name="index" method="index"class="kr.co.www2.controller.front.FrontMainController">
      <result name="success">/WEB-INF/jsp/admin/front_index.jsp</result>
  </action>
</package>
于 2017-07-26T12:19:30.817 回答