问题一

原版本Struts2.2.1中的JSP代码如下:

<a class="buttonSelect" href="/manage/machine/uploadFile!uploadOwnerIdentityUI.do?
businessId=${owner.id}&mainInfoId=${mi.id}&businessType=${mi.businessType}
&fieldId=hddProofPicPath&jsFunction=callbackFunc('proof')&width=330&height=445" target="dialog" mask="true" width="450" height="350" rel="uploadify"><span>上传</span></a>

鼠标移到这链接上,看到的链接地址如下:

由于链接地址.do?后面进行了回车换行,所以导致了看到的实际链接地址上.do?后面多了一块空格。

但后台是可以正确获取到businessId这个字段的值的

版本升级至Struts2.3.15.1后,后台变成了获取不到businessId这个字段的值了。通过调试查看request里面的参数名,发现它是已经把空格和businessId连在一起当作一个参数名了,如下图所示:

解决方法只能是在链接地址.do?后面不进行回车换行了。

问题二

Struts2.2.1版本的时候,使用了Token来防止重复提交,在后台如果验证不通过的话则使用

ActionContext.getContext().getSession().put("xxxx",xxxx);

方式重新把Token的值存储回去,但升级到Struts2.3.15.1版本后,这样不起作用了,需要改成

TokenHelper.setSessionToken("xxxx", xxxx);

这样才行。

Struts2从版本2.2.1升级至2.3.15.1出现的问题的更多相关文章

  1. 搭建Struts2不同版本jar包不同

    struts2的版本比较多,所以在开发的时候特别要注意版本不同所需引入的包是不一样的.否则,会出现各种问题.而且很难找到问题所在. 以下是我遇到的问题总结: 一.当我运用struts2.3.4.1时, ...

  2. struts2更新版本操作有关事项备注

    struts2更新版本操作有关事项备注, 更新主要jar包:struts2-convention-plugin-version,struts2-core-version, struts2-spring ...

  3. struts2不同版本在核心filter在web.xml中的配置

    FilterDispatcher是struts2.0.x到2.1.2版本的核心过滤器.配置如下: <filter> <filter-name>struts2</filte ...

  4. [.Net Core] - 当 .Net Core 版本由 1.x 升级至 2.x 后,Cookie 使用方式变更

    背景 Asp.Net Core 项目升级至 2.x 版本后,Cookie 验证方式需要进行更新. 升级前:.Net Core 1.x Startup.cs public void Configure( ...

  5. phpnow升级php版本 php-5.2.14-Win32升级至5.3.5

    PHPNow自带的PHP版本为5.2.14,而最后一次更新在于2010-9-22.下面来升级PHP5.3.5: 1.下载安装文件: 先下载PHP5.3.5,下载地址:php-5.3.5-Win32-V ...

  6. struts1、 struts2所有版本jar包下载地址大全

     jakarta-struts-1.2.2.tar.gz      30-Aug-2004 18:21   12M  jakarta-struts-1.2.2.tar.gz.asc  30-Aug-2 ...

  7. struts2 最新S2-016-S2-017漏洞通杀struts2所有版本及修复方法

    详情查看http://zone.wooyun.org/content/5159 官方漏洞说明 http://struts.apache.org/release/2.3.x/docs/s2-016.ht ...

  8. 在struts2.5版本中使用DMI遇到问题

    struts2.5 为了提升安全性,添加了 allomethod 这么个玩意. 解决方法是在配置文件中添加: <package name="exam" extends=&qu ...

  9. CentOS5内核版本2.6.18升级至3.6.4 转

    http://www.kvm.la/centos5-upgrade-kernel-3-6.html

随机推荐

  1. OpenGL 回顾-——矩形的创建、列表

    在使用四点创建矩形时,必须按照顺序,顺时针或者逆时针,不然会错乱.感觉是根据点的顺序依次连线. glBegin(GL_QUADS); glColor3f(1.0,0.0,0.0); glVertex3 ...

  2. ADO.NET笔记——使用Command执行增删改操作,通过判断ExecuteNonQuery()返回值检查是否操作成功

    相关知识: ExecuteNonQuery()方法:执行CommandText属性所制定的操作,返回受影响的记录条数.该方法一般用来执行SQL中的UPDATE.INSERT和DELETE等操作 对于U ...

  3. HTML5 INPUT新增属性

    HTML5的input标签新增了很多属性,也是让大家非常兴奋的一件事,用简单的一个属性搞定以前复杂的JS验证.input新增的这些属性,使得html和js的分工更明确了,使用起来十分舒畅.我们先看下i ...

  4. iframe整理学习笔记

    朋友问了一个比较怪的问题,iframe下自适应的问题,因为很少使用iframe的原因,怀着对iframe的疑惑采用了一点点实践;以下frame表示针对的iframe元素 解决的方法:对iframe进行 ...

  5. html设置360兼容/极速模式

    由于众所周知的情况,国内的主流浏览器都是双核浏览器:基于Webkit内核用于常用网站的高速浏览.基于IE的内核用于兼容网银.旧版网站.以360的几款浏览器为例,我们优先通过Webkit内核渲染主流的网 ...

  6. [C/C++] 各种C/C++编译器对UTF-8源码文件的兼容性测试(VC、GCC、BCB)

    在不同平台上开发C/C++程序时,为了避免源码文件乱码,得采用UTF-8编码来存储源码文件.但是很多编译器对UTF-8源码文件兼容性不佳,于是我做了一些测试,分析了最佳保存方案. 一.测试程序 为了测 ...

  7. C# 访问控制:public、private、protected和internal

    平日工作时最常用的访问控制符是public和private,当看到prism里面大量使用protected的时候,觉得还是不太理解为啥. 所以就静下心来查找并理解了一下,这里记录下,以便回顾和交流. ...

  8. 【转载】mysql 四种隔离级别分析

    sql标准中,有四种隔离级别,各个离级别都有各自的规则,隔离级别越低,允许并发越大,消耗的资源越少,但是越不安全,下面就mysql数据库来分别介绍一下(每个存储引擎实施的隔离级别会有稍微的不同)mys ...

  9. JNI-入门之二

    Android中JNI编程的那些事儿 首先说明,Android系统不允许一个纯粹使用C/C++的程序出现,它要求必须是通过Java代码嵌入Native C/C++——即通过JNI的方式来使用本地(Na ...

  10. C# 清楚Cookies

    //销毁Cookies中的数据 if (Request.Cookies["Ticket"] != null) { HttpCookie mycookie; mycookie = R ...