struts2的页面跳转问题
struts2中在Action的业务方法处理完后,返回一个页面的result(在struts.xml做的配置),页面是可以正常跳转到struts.xml中指定的页面,但是...
struts2中在Action的业务方法处理完后,返回一个页面的result(在struts.xml做的配置),页面是可以正常跳转到struts.xml中指定的页面,但是网页的url地址却还是跳转之前的上一个页面的url,这样导致页面手动刷新后,还会执行上一个页面的业务处理方法,导致重复操作,怎么解决啊?
例子:下面是我的测试程序
/material!add.do,这是新增页面,里面有各种表单元素,form的提交action为:/materialadd!insert.do,这样,在服务器接收到用户的提交请求后,就会到Action中去执行insert()方法,insert()方法是做新增操作的,新增结束后,如果操作成功,我就让此insert()方法返回到查询展示页面(把所有新增的数据都查询显示出来,result为list),struts.xml中对<action>的配置如下:
<action name="material*" class="materialAction"><result name="list">/jsp/erp/material.jsp</result><result name="add">/jsp/erp/material_add.jsp</result></action>.即返回到展示页面:/jsp/erp/material.jsp中。
到此,新增之后到展示页面是没有问题的,新增的数据在展示页面中也能显示出来,但是新增跳转到展示页面后,页面的url仍然是/materialadd!insert.do,这样,如果是手动刷新浏览器的话,会把刚才用来新增的数据,再次执行一遍,即又新增了一次。
就是这个问题,新增之后,跳转到展示页面,页面的url也应该变成:/material!list.do才行,这样刷新后才可避免执行insert()操作,我该如何实现呢,望高手指教,谢谢啦! 展开
例子:下面是我的测试程序
/material!add.do,这是新增页面,里面有各种表单元素,form的提交action为:/materialadd!insert.do,这样,在服务器接收到用户的提交请求后,就会到Action中去执行insert()方法,insert()方法是做新增操作的,新增结束后,如果操作成功,我就让此insert()方法返回到查询展示页面(把所有新增的数据都查询显示出来,result为list),struts.xml中对<action>的配置如下:
<action name="material*" class="materialAction"><result name="list">/jsp/erp/material.jsp</result><result name="add">/jsp/erp/material_add.jsp</result></action>.即返回到展示页面:/jsp/erp/material.jsp中。
到此,新增之后到展示页面是没有问题的,新增的数据在展示页面中也能显示出来,但是新增跳转到展示页面后,页面的url仍然是/materialadd!insert.do,这样,如果是手动刷新浏览器的话,会把刚才用来新增的数据,再次执行一遍,即又新增了一次。
就是这个问题,新增之后,跳转到展示页面,页面的url也应该变成:/material!list.do才行,这样刷新后才可避免执行insert()操作,我该如何实现呢,望高手指教,谢谢啦! 展开
2个回答
2009-04-17
展开全部
1.用Redirect跳转方式
2.用令牌 or 拦截器
2.用令牌 or 拦截器
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询