在工程中的WebRoot中有user文件夹,里面有userInfo.jsp和userInfoUpdate.jsp文件。在userInfo.jsp页面中,想要跳转到userInfoUpdate.jsp,相应代码如下:
<form action="user/userInfoUpdate.jsp" method="post">
<% session.setAttribute("uvo",uvo);%> //此处为了传值,无关紧要
<input type="submit" value="修改"/>
</form>
然后到了userInfoUpdate.jsp中,这是一个修改页面,相应代码如下:
<form action="user.do?command=userInfoUpdate" method="post"> //采用DispatchAction
......
<input type="submit" value="修改"/>
</form>
修改完后点击提交时,地址栏的地址变成了http://localhost:8080/title/user/user.do?command=userInfoUpdate问题是其他的jsp页面请求后(其他页面没有出现直接由一个页面跳到另一个页面的情况),地址均为类似http://localhost:8080/title/user.do?command=userInfoUpdate这种形式,就是说并没有中间的.../user/...。请问,为什么会多出/user/?我想可能是userInfo.jsp页面中action="user/userInfoUpdate.jsp"中的user/起的作用吧。两个jsp页面之间进行跳转,怎么会传递第一个页面的部分请求(如/user)呢?可能问题问得不是太明白,现在思路有些乱,不知道该怎么描述。
<form action="user/userInfoUpdate.jsp" method="post">
<% session.setAttribute("uvo",uvo);%> //此处为了传值,无关紧要
<input type="submit" value="修改"/>
</form>
然后到了userInfoUpdate.jsp中,这是一个修改页面,相应代码如下:
<form action="user.do?command=userInfoUpdate" method="post"> //采用DispatchAction
......
<input type="submit" value="修改"/>
</form>
修改完后点击提交时,地址栏的地址变成了http://localhost:8080/title/user/user.do?command=userInfoUpdate问题是其他的jsp页面请求后(其他页面没有出现直接由一个页面跳到另一个页面的情况),地址均为类似http://localhost:8080/title/user.do?command=userInfoUpdate这种形式,就是说并没有中间的.../user/...。请问,为什么会多出/user/?我想可能是userInfo.jsp页面中action="user/userInfoUpdate.jsp"中的user/起的作用吧。两个jsp页面之间进行跳转,怎么会传递第一个页面的部分请求(如/user)呢?可能问题问得不是太明白,现在思路有些乱,不知道该怎么描述。
http://localhost:8080/title/user/userInfoUpdate.jsp 此時 submit 到 user.do
當然就是 http://localhost:8080/title/user/user.do想變成 http://localhost:8080/title/user.do的話
在 userInfoUpdate.jsp 的 action改成
<form action="../user.do?command=userInfoUpdate" method="post">
//采用DispatchAction
......
<input type="submit" value="修改"/>
</form>
在你所有的action都写成类似<%=path%>/....
那是因为你的struts中配置的action的path不是/user
<action path="/user"
type="package.action.UserAction"
name="userDynaForm"
scope="request"
parameter="command"
>
......
</action>
另外地址栏变成了http://localhost:8080/user.do?command=userInfoUpdate。jsp页面里“/”应该对应的是客户端的相对地址,即这里的http://localhost:8080,网上翻到的(http://www.blogjava.net/meil/archive/2006/10/10/74167.html)。而如果把userInfoUpdate.jsp中的action变为action="/title/user.do?command=userInfoUpdate",这样就可以了。