在用分派action的时候,我有两个页面addnews.jsp、listnews.jsp,
在NewsAction.java中有两个方法:
addNews(),listNews()。
当我在addnews.jsp中提交表单到action中的addNews()中,
在里面我执行完插入数据库的操作以后,我希望转向到listnews.jsp中,
所以一般想到的都是写:return listNews(mapping, form, request, response);然后再listNews()方法中我执行了查询数据库的操作,
最后我再forword到listnews.jsp,这个流程应该是非常清晰的,但是问题出来了,当我们增加新的文章以后,我们返回到列表界面,
但是url路径仍然是http://localhost:8080/newstest/newsAction.do?method=addNews 那么这就要出现问题了,当我们不断的刷新页面的时候,我们会发现,列表中增加了很多重复的数据,这是因为刷新url路径时,请求还是从插入数据库的操作开始的,所以一遍遍的执行插入操作,造成了页面的重复提交。
怎么解决呢?我们知道,重定向可以解决页面刷新带来的数据的重复提交的问题,我们自然可以利用重定向的方式来解决这个问题。
但是struts的action里面mapping.findword();
跳转的话,默认的是在工程文件夹里面找要跳转的页面。这种情况,怎么解决呢?
修改struts-config.xml 文件, 在action里面有一个redirect重新定向的属性,struts中默认的是false,添加这个属性,改成true,在forword中写上要跳转页面的绝对或者相对地址就行了
修改如下:
<action-mappings>
<action attribute="newsActionForm" name="newsActionForm"
input="/addnews.jsp" path="/newsAction" parameter="method"
scope="request" type="com.yongtree.news.action.NewsAction">
<forward name="list" path="/listnews.jsp"
redirect="true"></forward>
<forward name="error" path="/addnews.jsp"></forward>
</action>
</action-mappings>
分享到:
相关推荐
struts2 重定向struts2 重定向struts2 重定向struts2 重定向struts2 重定向
struts2防止表单重复提交--重定向
struts2令牌解决页面重复提交问题,资源中包含一个实例代码
在struts中测试登录的redirect,transmit 一个测试重定向和转发的demo。演示转发到jsp和action的过程。 供参考。
struts2中对表单重复提交的处理方法;包括处理两种典型的表单重复提交的思路和方法
struts result类型中redirect与redirectAction的使用 包括参数传递。
当用户将信息提交到服务器,服务器响应采用forward方式调转到下一个页面后,此时地址栏中显示的是上个页面的URL,若刷新当前页面,浏览器会将再次提交用户先前输入的数据,就会再次出现表单重复提交的问题。...
防止重复提交的总要解决方案 相信对struts的学者有帮助 大家看看
struts token机制解决表单重复提交
用struts的token解决重复提交问题
Struts解决重复提交步骤也可以说是struts的令牌机制很有用的啊
李兴华Struts Struts高级部分(1)(解决重复提交、上传组件)
在struts 中可以通过token 来解决重复提交的问题。
利用struts1的令牌来解决页面的重复提交问题
这里是Struts2 中放置表单重复提交的例子。
运用struts2解决表单的重复提交问题
struts2防止表单重复提交,利用struts的拦截器tokenSession,轻轻松松解决表单重复提交的问题。 附件为源代码,后台延迟了3秒,可直接在web服务器下部署运行,输入用户名和密码后,多点几次提交按钮,然后看控制台...
Struts 之旅 - 重复提交 token
详细介绍struts+token机制解决表单重复提交问题。附带相关代码