对于初学者来说struts2的namespace的配置是个疑惑点,配置不好就容易出现找不到action或者相关的页面,今天做个几个简单测试来说明一下namespace的相关知识点:
最初始配置:
<package name="struts2" extends="struts-default">
<action name="FirstActoin" method="execute">
<result name="success">index.jsp</result>
</action>
</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,再来看一个配置:
<package name="struts2-01" namespace="/" extends="struts-default">
<action name="FirstActoin" method="execute">
<result name="success">/index.jsp</result>
</action>
</package>
这个的命名空间是“/” 其实这个命名空间我一直很疑惑,当你在浏览器中输入http://localhost:8080:/项目名/FirstAction这个url是其实采用就是这个命名空间“/” 那为什么在上一个配置中会正确访问呢,这是由于当strut2找不到“/”这个命名空间时会去默认命名空间中找相关的acton,如果找到响应,如果没有找到的话会出现这个错误信息说是找个不action。
验证我的说法可以采取以下配置
<package name="struts2-01" extends="struts-default">
<action name="FirstActoin" method="execute">
<result name="success">/index.jsp</result>
</action>
</package>
但在浏览器中输入http://localhost:8080/项目名/second.action ,会出现下面的提示There is no Action mapped for namespace / and action name second ,可见采用的就是"/"这个命名空间。这个是由于浏览器会在项目名后自动补上“/”,所以会有以上的结果。
再讲一个很重要的知识点,如果采取以下配置
<package name="struts2-01" extends="struts-default">
<action name="FirstActoin" method="execute">
<result name="success">/index.jsp</result>
</action>
</package>
浏览器中输入http://localhost:8080/项目名/hello/struts2/FirstAction.action这个url,也会正确相应,这是由于当struts2在当前url的命名空间中找不到FirstAction.action时,会自动在http://localhost:8080/项目名/hello这个url下找,如果找不到话,会在默认命名空间中查找,如果找到的话相应,如果没有报错,相信如果上一个配置明白的话也能知道会报什么错了吧。
以上都是本人一些学习中的一些总结,如果有错误认识的话,欢迎改正,互相学习。
分享到:
相关推荐
struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全...
一些struts2的笔记、项目总结,挺实用
Struts2输入校验总结 Struts2输入校验
以前学习struts2时候,自己练习的代码,可以供初学者参考学习
Struts2知识点总结,包括文件上传,文件下载,防止表单重复提交,Struts2标签,Struts2拦截器
struts2学习笔记总结
Struts2页面取值总结
struts2输入校验总结,struts2自带的校验器,以及校验器不能做的check的处理的总结
struts2学习总结
Struts2初步使用总结 初步介绍Struts2和用法
关于 struts 实验时的一些总结,这些总结是我 流着汗水一个一个总结出来的,希望能帮到更多的人在学习struts2是少些忧愁....
里面包含了全面的struts2重点内容,讲解比较详细,希望对大家有帮助吧!
struts2源码分析总结 是我在网上找到的关于源码讲解比较深刻的资料总结。对于研究struts2源码很有价值。
struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别...
struts2的经典总结,对struts2最容易忽视的问题和难点,以及怎样快速掌握作了很好的总结。
java Web开发,我们最常用的Struts2常用标签总结,帮助你Struts2常用标签有那些功能
struts2学习笔记,非本人所写,但有学习的价值,总结的很好,分享一个!
Struts2项目开发总结 (注:Struts2版本:Struts2.1.6,数据库:Oracle9i) 所须架包: commons-logging-1.0.4.jar、commons-fileupload-1.2.1.jar 、freemarker-2.3.13.jar ognl-2.6.11.jar、struts2-core-2.1.6....