我们在一些项目开发中,会遇到这样类似的问题,当用户点击删除或者修改以后,页面总是返回到默认的第一页,这样子看起来用户体验度也不是很高,那么,我们有解决的办法的吗?有的人建议可以用Ajax进行解决,这样子的思路也是可以的,笔者没有试过这种方法.此处,我给大家分享另一种解决办法
在这里,看后台的代码
这里是后台struts.xml
<!-- 这里是删除指定运单号 -->
<action name="delInfoDel" class="com.blogcsdn.action.DeleteOrderInfoAction">
<result type="redirectAction">listinfo</result>
</action>
在这上面的时候,当用户点击删除或者更新的时候,因为参数默认page=1的情况下,自然会默然重定向到第一个页面,那么,我们可以自己设想一下,如果在参数后面给定一个参数的时候,那么,页面自然就会重定向到当前页面所在页数,例如:
<action name="delInfoDel" class="com.blogcsdn.action.DeleteOrderInfoAction">
<result type="redirectAction">listinfo?page=${current_page}</result>
</action>
此处,类型如果是type="redirectAction",后面的listinfo不用加action,如果是type="redirect" ,则后面的listinfo则要加action,具体的方法还有<param>关于此类参数的用法,大家如果感兴趣,可以自己查找.
那么,这个参数如何传入的呢,这个是解决这个问题的关键,这里,实现的办法是这样子的:
①在页面给定一个隐藏表单<input type = "hidden" name="page" value = "${page}">此处的页面是你当前页面的页数
②回到DeleteOrderInfoAction中,记得,一定是你参数引入的DeleteOrderInfoAction这个JavaBean中,这个类必须有page的setter和getter方法,然后当执行完删除操作的时候,当前参数page属性会传入到要重定向到某个页面的page参数
这里是给出DeleteOrderInfoAction中里面的部分代码
//这里是从页面获取到的当前用户所操作的页面
private int page;
//这里是页面重定向到当前用户所操作的页面
private int current_page;
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getCurrent_page() {
return current_page;
}
public void setCurrent_page(int currentPage) {
current_page = currentPage;
}
public String execute() throws DAOException {
//把当前用户所操作的页面数传给页面重定向到的那个current_page参数
//这里是你的删除操作
current_page = page;
return "success";
}
注意:要给定重定向的参数,必须在你修改或者删除的JavaBean组件中,必须有page的getter和setter方法
(以上只是自己解决问题的部分思路,当然,还有一个问题,如果用户把当前页的信息全部删除,那么,页面就要自动跳转到上一页,这个问题我现在没有研究,当然,大家如果这个还有思路,可以共同来研究)