如何忽略struts2

时间:2017-07-26 11:37:01

标签: struts2 namespaces default-namespace

大家。 我在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>
&#13;
&#13;
&#13;

通过调用http://.../dl_adm/index.do

可以正常工作

并且称这对我来说有问题。

&#13;
&#13;
<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>
&#13;
&#13;
&#13;

当我选择http://.../index.do时,它会给出404 ...

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

问题:

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

我不会在使用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>