日期:2014-05-19  浏览次数:20777 次

struts2 jsp页面提交是,命名空间重复出现
前台的Jsp页面 book.jsp部分代码
<div class="header1">
<a href="home_page.action" class="STYLE2">首页</a> | 
<a href="user/shop.action?currentPage=1" class="STYLE2">商铺</a> | 
<a href="user/book.action?currentPage=1&catalogId=1" class="STYLE2">考试/教育</a> | 
<a href="user/book.action?currentPage=1&catalogId=2" class="STYLE2">文学艺术</a> | 
<a href="user/book.action?currentPage=1&catalogId=3" class="STYLE2">经济管理</a> | 
<a href="user/book.action?currentPage=1&catalogId=4" class="STYLE2">生活</a> | 
<a href="user/book.action?currentPage=1&catalogId=5" class="STYLE2">人文社科</a> | 
<a href="user/book.action?currentPage=1&catalogId=6" class="STYLE2">计算机</a> | 
<a href="user/book.action?currentPage=1&catalogId=7" class="STYLE2">少儿</a> | 
<a href="user/book.action?currentPage=1&catalogId=8" class="STYLE2">女性</a> | 
<a href="user/message.action?currentPage=1" class="STYLE2">留言板</a>
</div>

struts.xml片段如下

<struts>
 <package name="user" extends="struts-default" namespace="/user">
   <!--书籍-->
  <action name="book" class="org.action.BookAction" method="book">
  <result name="success">/WEB-INF/jsp/user/book.jsp</result>
   </action>
    </package>

每次点击上面的中文连接后,浏览器的连接出现命名空间重复问题,如下:

http://localhost:8080/bookstore/user/user/user/user/user/user/book.action?currentPage=1&catalogId=5

就是你每点击一次页面的action,命名空间user就会叠加一次,这个问题怎么解决?

------解决方案--------------------
LZ的配置没有问题,页面写法有问题。

给你一种写法看看好用不。

<s:url id="idUrl" action="book" namespace="/user"> 
  <s:param name="currentPage">1</s:param>
  <s:param name="catalogId">1</s:param>
</s:url>

<s:a href="%{idUrl}" cssClass="STYLE2">考试/教育</s:a>
------解决方案--------------------
引用:
引用:

你在struts_user.xml中的package中的namespace去掉,a标签中直接写xxx.action,另外建议你不要把jsp文件放在web-inf下,直接在webroot下建一个文件夹比如book专门存放jsp页面,然后在配置action的跳转时换成
<result name="success">/book/showUser……

看你的配置是没有什么问题的,放在web-inf下容易打乱程序结构,降低可维护性,所谓的提高安全性完全可以由过滤器来实现。
去掉namespace后,struts会统一管理这些package以及其下面的action,访问的时候struts会查找package下的对应的action
另外,第一次访问的时候url里是不是有两个user?以后每点一次就增加一个user?
我觉得还是你在页面里访问action时加user的问题,6楼的方法你可以尝试下
只能说这么多了,希望对你有帮助或者有大虾献策