首页 > 其他 > 详细

Struts2中namespace和result的路径问题

时间:2019-02-28 18:47:45      阅读:185      评论:0      收藏:0      [点我收藏+]

自己种下的因,现在结下的过,所以从现在开始,为以后有一个好的果!

 

今天在配置struts2的namespace的时候,遇到了学习struts的第一个坑,所以来写一篇也是第一篇博客来给我增加记忆。

 

1.首先上代码:

<package name="p2" extends="struts-default" namespace="/user">
<action name="user_Add" class="priv.xxx.web.aciton.UserAction" method="userAdd">
<result name="success">WEB-INF/user/userAdd.jsp</result>
</action>
</package>

 

2.上述代码中看似并没有什么问题,但是在访问时会报错,报错如下: 技术分享图片

 3.很奇怪,为什么前面会自动加上/user呢?于是带着这个问题,我上了百度....emmmm

   原因如下:

     因为namespace是struts.xml配置文件中package标签中的属性,不仅决定了访问时URL的路径也决定了你的result访问jsp页面的路径,所以会出现以上问题。

    例子1:

<package name="p2" extends="struts-default" namespace="/">
<action name="user_Add" class="priv.xxx.web.aciton.UserAction" method="userAdd">
<result name="success">WEB-INF/user/userAdd.jsp</result>
</action>
</package>

    如上述代码来说,当你访问localhost:8080/user_add时,会在你的根目录下找,其中的action为user_Add的路径,result中的路径并不是全路径(不知全路径可自行百度),访问

    user_Add会在result加上“/”,会变成“/WEB-INF/user/userAdd.jsp”,这样是没有问题的。但是!请看接下来的情况。

    例子2:

  
<package name="p2" extends="struts-default" namespace="/user">
<action name="user_Add" class="priv.xxx.web.aciton.UserAction" method="userAdd">
<result name="success">WEB-INF/user/userAdd.jsp</result>
</action>
</package>
 
   

      当你访问时,如上所述,就会在你的result的路径前加上namespace,result为“/user/WEB-INF/user/userAdd.jsp”所以导致404。也就是最开始的问题。

  如何解决呢?

    很简单,只需要在你的result路径前面加上“/”变成全路径即可解决。如下:

    <result name="success">/WEB-INF/user/userAdd.jsp</result>

 

Struts2中namespace和result的路径问题

原文:https://www.cnblogs.com/xiaocore/p/10452066.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!