关于strut拦截action的路径和package的namespase的问题
2012-02-29 11:46
232 查看
触发action时在web.xml中配置的如下:
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/marsor/*</url-pattern>
</filter-mapping>
那么触发action时的完整路径是:
http://address:port/programname/marsor/haha.action
但是一般在登录这个网址的时候会写入全路径:
http://address:port/programname/marsor/index.jsp 此处
的/marsor是jsp所在的真实目录,
这里就涉及一个技巧:当你输入全地址时
http://address:port/programname/marsor/index.jsp,在该jsp下面触
发action时直接写上action的名字就可以了,
因为服务器会记录http://address:port/programname/marsor/这段地址
,然后把触发的action直接加到后面,这就是目录名marsor和
<url-pattern>/marsor/*</url-pattern>这里配置的一样的技巧了
其实只要地址栏里面有http://address:port/programname/marsor/ 那
么服务器就会拦截检测到/marsor的存在,那么就会直接定位到/marsor
后面的action。
所以当你触发:
http://address:port/programname/marsor/fadadfa/davadv/login.act
ion时 也可以触发成功,服务器会自动把/marsor后面的地址去掉而直接
定位到action
这就出问题了,如果要是在struts里面配置
<package name="userArticle" namespace="/user" extends="global">
那么触发时就要在action前面加上/user 全路径是:
http://address:port/programname/marsor/user/login.action
这就产生问题了,/marsor会自动过滤掉/user而直接定位到
login.action 但是struts又检测不到/user 所以触发总是失败的!
建议不要在package里面设置namaspace
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/marsor/*</url-pattern>
</filter-mapping>
那么触发action时的完整路径是:
http://address:port/programname/marsor/haha.action
但是一般在登录这个网址的时候会写入全路径:
http://address:port/programname/marsor/index.jsp 此处
的/marsor是jsp所在的真实目录,
这里就涉及一个技巧:当你输入全地址时
http://address:port/programname/marsor/index.jsp,在该jsp下面触
发action时直接写上action的名字就可以了,
因为服务器会记录http://address:port/programname/marsor/这段地址
,然后把触发的action直接加到后面,这就是目录名marsor和
<url-pattern>/marsor/*</url-pattern>这里配置的一样的技巧了
其实只要地址栏里面有http://address:port/programname/marsor/ 那
么服务器就会拦截检测到/marsor的存在,那么就会直接定位到/marsor
后面的action。
所以当你触发:
http://address:port/programname/marsor/fadadfa/davadv/login.act
ion时 也可以触发成功,服务器会自动把/marsor后面的地址去掉而直接
定位到action
这就出问题了,如果要是在struts里面配置
<package name="userArticle" namespace="/user" extends="global">
那么触发时就要在action前面加上/user 全路径是:
http://address:port/programname/marsor/user/login.action
这就产生问题了,/marsor会自动过滤掉/user而直接定位到
login.action 但是struts又检测不到/user 所以触发总是失败的!
建议不要在package里面设置namaspace
相关文章推荐
- 关于Struts1.2配置文件的Action访问路径相关问题
- 关于web项目静态资源路径、action路径的控制问题
- 关于jsp表单提交中action所指向Servlet路径问题的总结
- 关于struts2使用命名空间后action路径问题
- 关于JSP页面与action的路径问题
- 关于jsp表单提交中action所指向Servlet路径问题的总结
- Struts2关于Action的系统训练3关于Action创建和path路径问题
- Struts:关于struts2中namespace和s:form action和form action 路径问题
- 【转】关于Class.getResource和ClassLoader.getResource的路径问题
- 关于读取Properties文件以及路径问题
- 关于文件路径的反斜杠正斜杠和双斜杠问题
- 关于“Web 创作组件” 解决MS Office 2007找不到Office.zh-cn问题以及VS2008 SP1 安装失败需指定visualwebdeveloperww.msi所在路径
- 关于android 调用系统图片浏览器并返回图片路径问题
- javaweb中关于引用css和image的路径问题
- 关于Class.getResource和ClassLoader.getResource的路径问题
- 关于路径搜寻的问题!为何不执行目前所在目录下的档案?
- 关于session失效时springmvc拦截器拦截ajax请求失败的问题
- 关于解决自定义FloatingActionButton滑动行为(Behavior)只隐藏不出现的问题
- 关于android4.0以后,SD卡路径获取问题
- 关于web中文件路径的问题...