解决ssh中的actionmessage在redirect传递时的丢失的问题(new)

问题来源:ssh项目中,经常需要对Action进行转发,以便业务处理完之后数据重新获取进行更新,而业务处理完需要反馈结果给前端,这时一般会用到addActionMessage方法,但是转发之后actionMessage会丢失,对于这个问题网上有很多方法,感觉有点麻烦,这里介绍一个我自己的解决方法。

例如在我的一个图书管理项目中:
一个新增图书的流程:
1.执行BookAction中add()方法
2.转发给BookAction中show()方法,实现数据重新更新

解决方法:

业务处理方法里面创建提示语,并把提示语放在session中。(提示语为js语言,能够在前端弹出对话框)
这里写图片描述

然后在转发到的那个action方法里面,获取session中提示语并放在actionMessage中,记得销毁提示语,不然下次调用这个方法还会出现这个提示语。
这里写图片描述

献上关键的2步代码(提示语根据自己需要进行替换):

转发前action方法:

        String tip = "";
        tip = "<script>alert(\""
                + "图书添加成功"
                + "\");</script>";
        ActionContext.getContext().getSession().put("tip", tip);
       Map<String, Object> session = ActionContext.getContext().getSession();
       String tip = (String) session.get("tip");
       //取出session中提示语放入ActionMessage中(解决转发时actionMessage丢失问题)
       if(tip!=null&&tip.length()>0){
            addActionMessage(tip);
            session.remove("tip");
       }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值