关于Struts2的namespace的一些总结

   对于初学者来说struts2的namespace的配置是个疑惑点,配置不好就容易出现找不到action或者相关的页面,今天做个几个简单测试来说明一下namespace的相关知识点:

 

最初始配置:

 

 

Java代码   收藏代码
  1. <package name="struts2"   extends="struts-default">  
  2.         <action name="FirstActoin"  method="execute">  
  3.             <result name="success">index.jsp</result>  
  4.         </action>   
  5. </package>  

 

 这个采用的是struts2的默认命名空间,相当于namespace="";访问action是在浏览器中输入http://localhost:8080:/项目名/FirstAction,就可以访问到index.jsp页面,注意了  这里index.jsp前面没有加上“/”,说明采用的相对路径,这个相对路径是相对于当前浏览器输入的url的,例如浏览器输入的url是http://localhost:8080:/项目名/hello/FirstAction

那个Struts2就会在http://localhost:8080:/项目名/hello/index.jsp这个地址找index.jsp。所以建议显示页面采用绝对路径,这个绝对路径是当前项目的url,再来看一个配置:

 

 

Java代码   收藏代码
  1. <package name="struts2-01" namespace="/"  extends="struts-default">  
  2.         <action name="FirstActoin"  method="execute">  
  3.             <result name="success">/index.jsp</result>  
  4.         </action>   
  5. </package>  

这个的命名空间是“/” 其实这个命名空间我一直很疑惑,当你在浏览器中输入http://localhost:8080:/项目名/FirstAction这个url是其实采用就是这个命名空间“/” 那为什么在上一个配置中会正确访问呢,这是由于当strut2找不到“/”这个命名空间时会去默认命名空间中找相关的acton,如果找到响应,如果没有找到的话会出现这个错误信息说是找个不action。

验证我的说法可以采取以下配置

<package name="struts2-01" extends="struts-default">

Java代码   收藏代码
  1. <action name="FirstActoin"  method="execute">  
  2.     <result name="success">/index.jsp</result>  
  3. </action>   
  4. lt;/package>  

  

但在浏览器中输入http://localhost:8080/项目名/second.action ,会出现下面的提示There is no Action mapped for namespace / and action name second ,可见采用的就是"/"这个命名空间。这个是由于浏览器会在项目名后自动补上“/”,所以会有以上的结果。

 

再讲一个很重要的知识点,如果采取以下配置

 

 

Java代码   收藏代码
  1. <package name="struts2-01"  extends="struts-default">  
  2.     <action name="FirstActoin"  method="execute">  
  3.         <result name="success">/index.jsp</result>  
  4.     </action>   
  5. </package>  

 浏览器中输入http://localhost:8080/项目名/hello/struts2/FirstAction.action这个url,也会正确相应,这是由于当struts2在当前url的命名空间中找不到FirstAction.action时,会自动在http://localhost:8080/项目名/hello这个url下找,如果找不到话,会在默认命名空间中查找,如果找到的话相应,如果没有报错,相信如果上一个配置明白的话也能知道会报什么错了吧。

以上都是本人一些学习中的一些总结,如果有错误认识的话,欢迎改正,互相学习。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值