Struts2重定向时,OGNL异常(中文乱码)解决方法。

先说说事情原委吧,有个页面要提交表单,成功后在返回此页面,发现,提交后返回此页面,点击F5刷新,又会重复提交表单。
于是,就去百了一下,发现解决方法3种。
1,js
2,提交成功后重新定向到一个页面
3,struts2 自带的token
本来一开始用第3种token,发现确实可以避免重复提交表单。但是前一次提交的数据,会重新自动赋值到页面,达不到我想清空页面的效果,然后就考虑第2种方法。

然后写struts2配置文件重定向,大概配置文件描述如下
            <result name="insSelf" type="redirectAction">
              <param name="actionName">doSelect</param>
              <param name="pageIndex">1</param>
              <param name="selPhotokindCode">${selPhotokindCode}</param>
              <param name="hotelphototbl.hotelSerno">${hotelphototbl.hotelSerno}</param>
              <param name="allName">${allName}</param>
            </result>
其中,allName会传中文参数。结果运行是又抛ognl异常,又是页面乱码。
继续百。
发现解决ognl异常,是因为上边的配置文件写的不正确,自定义的参数。这么写错误,改成如下
            <result name="insSelf" type="redirectAction">
              <param name="actionName">doSelect.action?pageIndex=1&amp;selPhotokindCode=${selPhotokindCode}& amp;hotelphototbl.hotelSerno=${hotelphototbl.hotelSerno}&amp;allName=${allName}</param>
            </result>

运行ognl不在抛异常了。中文继续乱码。

然后在重定向前的方法里,先URLEncoder,在重定向的方法里URLDecoder。
先方法里:
allName=URLEncoder.encode(allName, "UTF-8")
后方法里:
allName = URLDecoder.decode(allName, "UTF-8");

结果还是乱码,继续百,发现配置文件要改成如下
            <result name="insSelf" type="redirectAction">
              <param name="actionName">doSelect.action?pageIndex=1&amp;selPhotokindCode=${selPhotokindCode}&amp;hotelphototbl.hotelSerno=${hotelphototbl.hotelSerno}&amp;allName=${allName}</param>
              <param name="encode">true</param>
            </result>
多了一句<param name="encode">true</param>
运行ok,解决了~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值