论坛首页 Java企业应用论坛

struts在findForward时怎么更好的取上一页的参数.

浏览 6931 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-12-21  
(首先声明.我第一次用struts做.但我真的找了这里的贴子.也有一遍.是分页传弟参数的贴子,我看过了,但我还不是很理解robbin与各位说的用法)

比如说一个页面是这样子,但我在这页要保存数据时,返回到该页.也要有后面所带了参数.
question.jsp?id=123&name=wull

到------->questionFrom
(这里只有两种选择.request与session.一个太小,一个太大.基本上都是用request)

到-------->questionAction
(只能在这里,我只能用session.保存参数
session.setAttribute("uri","Id="+id);)

到---------><forward name="success" path="/qa/question.jsp" />
(在这里是成功时地址转向)

在sturts里url与uri包含多个变量时,可用map类型存储.但还是要用
pageContext.setAttribute("map",map);

请问一下.除了用我上面说了session以后还有没有其它的方法呀.
   发表时间:2004-12-24  
比如说在一个页面上增加数据(路径是这样:http://.../wulist.jsp?id=1&name=wull).
这时在这个页面上了一个表单增加数据,提交完之后当然是返回到本页.
但在action中.只有这句:return actionMapping.findForward("success");
然后在xml中配置 <forward name="success" path="/wulist.jsp" />
后面没办法带原来的参数

到底wulist.jsp是怎么更好,更方便的得到.id=1&name=wull这个参数呢.( 我目前是用session,在action里,把这两个参数加入session.然后,到外面去取).

我觉得session不好.
请问,谁有更好的方法.
0 请登录后投票
   发表时间:2004-12-24  
不大明白楼主的意思~~

action 里不是有request 参数么~~
request.getQueryString()
不就行了?
0 请登录后投票
   发表时间:2004-12-24  
楼上的方法是可以,但只能取到get的,却取不到post的,所以我一般都是用一个循环把参数(name=value)重写一次
0 请登录后投票
   发表时间:2004-12-27  
xiaoyu 写道
楼上的方法是可以,但只能取到get的,却取不到post的,所以我一般都是用一个循环把参数(name=value)重写一次


现在我也是重写一次。发现重写一次比其它的方法更好用。

-----------------------------------------------------------------------
还有一个问题:我用下面的方式带多个参数。。
<%@ page contentType="text/html;CHARSET=utf8" errorPage="error.jsp"%>
<%request.setCharacterEncoding("GBK");%>
<%@ page import = "java.util.*,java.lang.*"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
HashMap map=new HashMap();
map.put("user",user);//这里变量只要中文,下面的链接显示就是乱码
map.put("boaid",boaid);
map.put("subjectid",subjectid);
pageContext.setAttribute("params", map);
<html:link page="/qa/questionlist.jsp" name="params">工艺</html:link>

没想到。这时候的链接里,只要参数有中文的就乱码。。烦人呀。
0 请登录后投票
   发表时间:2004-12-27  
把含有字符串先转成Unicode编码看看
0 请登录后投票
   发表时间:2005-01-12  
不知道楼主为什么一定要放到URL中来传递参数呢?
既然你用的是struts,你完全可以把这些参数写在form中,让struts来自动帮你
取得这些参数阿
<html:hidden name='xxxform' property="name">
<html:hidden name='xxxform' property="id">
如果你不想放到struts的actionForm中,也可以采用最传统的方法,虽然有点不雅观,但还是很实用的,如下:
<input type="hidden" name="id" value="<%=request.getParameter("id")%>">
<input type="hidden" name="name" value="<%=request.getParameter("name")%>">
0 请登录后投票
   发表时间:2005-01-12  
摆渡人 写道
xiaoyu 写道
楼上的方法是可以,但只能取到get的,却取不到post的,所以我一般都是用一个循环把参数(name=value)重写一次


现在我也是重写一次。发现重写一次比其它的方法更好用。

-----------------------------------------------------------------------
还有一个问题:我用下面的方式带多个参数。。
<%@ page contentType="text/html;CHARSET=utf8" errorPage="error.jsp"%>
<%request.setCharacterEncoding("GBK");%>
<%@ page import = "java.util.*,java.lang.*"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
HashMap map=new HashMap();
map.put("user",user);//这里变量只要中文,下面的链接显示就是乱码
map.put("boaid",boaid);
map.put("subjectid",subjectid);
pageContext.setAttribute("params", map);
<html:link page="/qa/questionlist.jsp" name="params">工艺</html:link>

没想到。这时候的链接里,只要参数有中文的就乱码。。烦人呀。


呵呵,我和你的重写不一样。我是重新成一个form,不是URL。。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics