今天为处理防止用户刷新页面二重复提交数据使用了重定向的方法,因为只用了JSTL没用Struts1.x自带的标签,所以没有用Token,因此采用这种方式处理重复提交.
当然af.setRedirect(true)后http得到新的请求request也就没有参数了.
我要转到的是另一个Action来处理,而那个Action要获得一些参数才会执行一些功能,如查询数据等..
所以我这么做:
ActionForward af = new ActionForward();
af.setPath("webUrl.do?command=anQuestion&id=" + id + "&che=" + che);
af.setRedirect(true);
return af;
这样之后发现没有得到che的值,而且提交时浏览器响应很慢,后来发现是只为che是中文,当是中文时IE8是得不到che的值,FF3.09中得到的是乱码,英文则没有事.
所用的所有编码全是UTF-8的,这什么setPath()会出现如此奇怪的问题?而且在不同浏览器表现不一??我知道FF在处理URL时用的是UTF-8,可是IE这何得不到值,响应为何如此慢??
当然af.setRedirect(true)后http得到新的请求request也就没有参数了.
我要转到的是另一个Action来处理,而那个Action要获得一些参数才会执行一些功能,如查询数据等..
所以我这么做:
ActionForward af = new ActionForward();
af.setPath("webUrl.do?command=anQuestion&id=" + id + "&che=" + che);
af.setRedirect(true);
return af;
这样之后发现没有得到che的值,而且提交时浏览器响应很慢,后来发现是只为che是中文,当是中文时IE8是得不到che的值,FF3.09中得到的是乱码,英文则没有事.
所用的所有编码全是UTF-8的,这什么setPath()会出现如此奇怪的问题?而且在不同浏览器表现不一??我知道FF在处理URL时用的是UTF-8,可是IE这何得不到值,响应为何如此慢??
解决方案 »
- 各位大神怎么把打红圆圈中的去掉 求指导
- 怎样找工作
- eclipse 中的缩进格式问题
- 将已生成的XML文件保存到orcl数据库中,用Java如何实现?
- Myeclipse+Hibernate时驱动JTDS问题和ODBC问题
- 关于struts validator验证框架的问题
- session內保存中文的問題(Tomcat5)
- 初学Java,请大家介绍一下J2EE,JSP等方面的书,小弟先谢了!
- 紧急:这是什么错误?关于通过EJB CMP 2查询sql记录的问题!
- 关于OGNL中<s:if />判断出错的问题
- java.lang.NullPointerException错哪了?
- spring中如果dao为非单例,singleton="false";发现bean不能被回收导致内存溢出,怎么解决
统一编码!
顶!
path = URLEncoder.encode(path,"UTF-8");
已经有过虑器了,已经统一编码了..
而且这样做直接报URL不存在了..
你这样是页面重定向了 不是同一个请求了 取不到要流浪的url所以超时
你注意我path后能参数,而且是一个Action,所以URL就是带参数值的path,这样一来就会转向action,当然会得到值,现在问题是中文为什么得不到..
if (value != null) {
uri.append(params == 0 ? '?' : '&')
//URLEncoder.encode(value, "UTF-8")是否使用看着办吧!
.append(name).append('=').append(value); params++; } else {
String[] values = pageContext.getRequest().getParameterValues(name); if (values != null) {
for (int i = 0, l = values.length; i < l; i++) {
value = values[i];
uri.append(params == 0 ? '?' : '&')
//URLEncoder.encode(value, "UTF-8")是否使用看着办吧!
.append(name).append('=').append(value); params++;
}
}
}
}对tomcate 配置URL编码!
根据LZ的情况;我的方案&che=" + che去掉是在request中放一个值是把就和 查询输入框中查询 而查询的关键字依然保留页面刷新(没有应查询而为空)是一样的道理
<%
String data ="";
if (request.getParameter("flag")!= null) {
data=String.valueOf((Integer.valueOf((String)request.getParameter("flag")))+1);
}
if(Integer.parseInt(request.getParameter("flag"))>=1){
//重复提交了
}
%>
<input type="hidden" name="flag" value="<%=data%>">//flag为form的一个属性初始为0
不是从表单得的值,是从业务处理那得的che..
//p--为跳到该页面之前Session里的一个key值 <c:set var="falg" value="${p}" scope="session"/>
//提交一次 sessionScope.falg设置 二次判断如下
------------------------------------------------------<c:if test="${sessionScope.falg}!=null || sessionScope.falg}!=''}">
//不提交
</c:if><c:if test="${sessionScope.falg==null || sessionScope.falg==''}">
<c:set var="falg" value="${p}" scope="session"/>
//提交
</c:if>
欢迎深圳的JAVA程序员加入,共同探讨技术与工作、项目合作、共享信息、结交朋友
加入请输入验证信息:SZJP
有没有详解啊..
深入讲解之类的..