我查询出来一组数据,可以在页面对数据修改和删除。点击修改按钮跳转到修改页面,但是修改保存后(入库)在按返回键返回到那组数据时,点击删除却跳转到刚才的修改页面。。直接删除好使。
就是修改后删除有问题。。在action中有修改,删除方法。。
然后返回键点击删除直接跳到修改页面,不论点击哪条数据都一样。
直接查出来数据点击删除好使。。。
这是修改表单提交到的action,修改完返回原页面。。
public String update() {
this.clearFieldErrors();
boolean flag = judgePermission();
if (flag) {
int roomid = Integer.parseInt(dormId);
int paymoney = Integer.parseInt(money);
int result;
result = payService.update(payid, roomid, uid, paymoney, payTime);
if (result == 0) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getPayid() == payid) {
list.get(i).getStaff().setName(uid);
list.get(i).getRoom().setRoomid(roomid);
list.get(i).setMoney(paymoney);
}
}
this.addFieldError("updatetip", "修改成功");
} else if (result == -1) {
this.addFieldError("updatetip", "该用户不在缴费名单内");
} else if (result == -5) {
this.addFieldError("updatetip", "用户名与宿舍不匹配");
} else if (result == -6) {
this.addFieldError("updatetip", "该用户暂无宿舍");
}
}else if(!flag){
setErrorPath("jsp/paymentManage/error.jsp");
this.addFieldError("errorTip", "该用户暂无权限");
return "error";
}
System.out.println(state);
setSuccessPath("jsp/paymentManage/updatepayment.jsp");
return SUCCESS;
}
delete的方法:
public String delete() {
boolean flag = judgePermission();
if (flag) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getPayid() == payid) {
list.remove(i);
}
}
payService.delete(payid);
if(state==1)
{
queryByDormId();
setSuccessPath("jsp/paymentManage/paymentSearch_by_num.jsp");
}
else if(state==2)
{
queryByMonth();
setSuccessPath("jsp/paymentManage/paymentSearch_by_month.jsp");
}
return SUCCESS;
}
else {
setErrorPath("jsp/paymentManage/error.jsp");
this.addFieldError("errorTip", "该用户暂无权限");
return "error";
}
}
贴代码吧 要不然不是很清楚你是怎么写的,没法回答啊。
贴了
@不屈的心: 说明删除按钮的事件被覆盖了呗,最好把整个页面代码贴出来吧 就这一个方法是看不出什么的。
虽然没有用过 setSuccessPath,但是我觉得应该是delete后return success,但是successpath的值还是update后set的值。猜想这2个方法在一个action里面,然后这个action类没有这个注解 @Scope("prototype")。菜鸟路过……
这两个方法都有return success。这个不需要注解吧。我查出来可以直接删除,只是修改以后就出错了。应该是update这个方法写的有问题。
@不屈的心: if(state==1)
{
queryByDormId();
setSuccessPath("jsp/paymentManage/paymentSearch_by_num.jsp");
}
else if(state==2)
{
queryByMonth();
setSuccessPath("jsp/paymentManage/paymentSearch_by_month.jsp");
}我觉得这2个if都没有进去,你用断点试试
@不屈的心: 这么跟你说吧,删除完之后是需要重定向的,但现在一般的做法是走ajax,就不需要
@GisClub:
而且也进入了方法。。但是点击修改后进入修改页面点击保存,按返回键到查询再次按删除则出问题了,直接跳转到修改页面。
@不屈的心: 这也不算一个bug吧,应为按Backspace键返回时他前一个页面还是返回前的页面。。。不过这样不好,怎样避免呢