在网上下载了xheditor作为页面的编辑器,编辑内容后post到后台保存,后台方法用spring mvc的自动注入的方式接收参数。

这种方式在各个浏览器下运行良好,但是在ie11下发现,从word、文本编辑器或者其它编辑器复制内容到xheditor后,这时提交到后台的参数不能被接收到。

仔细排查下发现ie11下复制到xheditor的内容都被默默的加了一段无用的div:

<div style="top: 0px;">
</div>

此时用最原始的接收参数的方式:request.getParameter(“name”);也取不到值。但是抓包看浏览器的交互信息,编辑器里的内容确实被提交到了后台。

于是猜想这可能是spring mvc在解析request的参数时出现了什么问题,就打印了request的body的值查看,惊喜的发现有页面POST过来的内容,便取消了自动注入参数的方式,用了反射机制来初始化参数值。

 @SuppressWarnings("rawtypes")
public void init(HttpServletRequest request){
try {
String queryBody = IOUtils.toString(request.getInputStream()); Class cls = Class.forName("Params"); if(StringUtils.isNotBlank(queryBody)){
StringTokenizer st = new StringTokenizer(queryBody, "&"); while (st.hasMoreTokens()) {
String pairs = st.nextToken();
String key = pairs.substring(0, pairs.indexOf('='));
String value = pairs.substring(pairs.indexOf('=') + 1); if(StringUtils.isBlank(value))
continue; value = URLDecoder.decode(value, "UTF-8"); Field fld = cls.getDeclaredField(key);
Class type = fld.getType();
if(type.toString().equalsIgnoreCase("int")){
fld.setInt(this, Integer.parseInt(value));
}else{
fld.set(this, value);
}
}
} } catch(UnsupportedEncodingException e){ } catch (IOException e) { } catch (SecurityException e) { } catch (NoSuchFieldException e) { } catch (ClassNotFoundException e) { } catch (IllegalArgumentException e) { } catch (IllegalAccessException e) { }
}

spring mvc 3.1的自动注入参数遇到的问题的更多相关文章

  1. Spring MVC如何获取请求中的参数

    目录 一.获取URL中路径参数 1.1 @PathVariable 注解 1.2 @PathParam 注解 二.获取请求参数: 2.1 GET请求 2.1.1 获取请求中的单个参数:@Request ...

  2. 使用Spring mvc接收整个url地址及参数时注意事项

    使用Spring mvc接收整个url地址及参数时注意事项:url= http://baidu?oid=9525c1f2b2cd45019b30a37bead6ebbb&td=2015-08- ...

  3. Spring MVC(八)--控制器接受简单列表参数

    有些场景下需要向后台传递一个数组,比如批量删除传多个ID的情况,可以使用数组传递,数组中的ID元素为简单类型,即基本类型. 现在我的测试场景是:要从数据库中查询minId<id<maxId ...

  4. Spring MVC(三)--控制器接受普通请求参数

    Spring MVC中控制器接受参数的类方式有以下几种: 普通参数:只要保证前端参数名称和传入控制器的参数名称一致即可,适合参数较少的情况: pojo类型:如果前端传的是一个pojo对象,只要保证参数 ...

  5. Spring Aop面向切面编程&&自动注入

    1.面向切面编程 在程序原有纵向执行流程中,针对某一个或某一些方法添加通知,形成横切面的过程叫做面向切面编程 2.常用概念 原有功能:切点,pointcut 前置通知:在切点之前执行的功能,befor ...

  6. Spring MVC无法获取ajax POST的参数和值

    一.怎么会这个样子 很简单的一个想法,ajax以POST的方式提交一个表单,Spring MVC解析.然而一次次的打印null折磨了我整整一天…… 最后的解决现在看来是很明显的问题,“只是当时已惘然” ...

  7. Spring MVC 页面跳转时传递参数

    页面仍然使用 JSP,在跳转时如果想传递参数则需要用到类 RedirectAttributes. 首先看看如何打开一个普通页面: // 登录页面(每个页面都要独立的 Action 来支持其呈现) @R ...

  8. 使用spring注解——定义bean和自动注入

    对于java bean的定义和依赖配置,使用xml文件真心是不方便. 今天学习如何用注解,解决bean的定义和注入. 常用注解: 1.自动注入:@Resources,@Autowired 2.Bean ...

  9. 【spring mvc】spring mvc POST方式接收单个字符串参数,不加注解,接收到的值为null,加上@RequestBody,接收到{"uid":"品牌分类大”},加上@RequestParam报错 ---- GET方式接收单个参数的方法

    spring mvc POST方式 接收单个参数,不加任何注解,参数名对应,接收到的值为null spring mvc POST方式 接收单个参数,加上@RequestBody,接收到参数格式:{&q ...

随机推荐

  1. 数组MARSHALLING z

    在托管代码和本地代码之间传递数组,是interop marshaling中间比较复杂的一个问题.本文从数组的定义开始,介绍数组marshalling的三种方法,并对blittable类型等概念做进一步 ...

  2. [转]"由于这台计算机没有远程桌面客户端访问许可证,远程会话被中断"的解决方案

    先使用如下命令登录到服务器: mstsc /v:{服务器IP} /admin 然后再使用下列方法之一即可. 方法一: 1.单击“开始→运行”,输入“gpedit.msc”打开组策略编辑器窗口,依次定位 ...

  3. [King.yue]EXT.NET TextFieldFor添加正则表达式

    EXT.NET TextFieldFor添加正则表达式以及提示用法 例:Html.Y().TextFieldFor().Regex("此处添加正则表达式") .InvalidTex ...

  4. python写的自动签到脚本。

    等以后有时间补上. 附上代码: #! /usr/bin/env python # coding:utf-8 #-----------------------------------------学号和密 ...

  5. [MarsZ]程序猿谈大学之为什么不推荐就业时做程序猿

    这篇文章适合一切有志做一个程序猿的人,而不仅仅只是即将进入就业市场的大学生. “又到了毕业找工作的时候了,好多朋友打电话向我咨询要不要让孩子做程序员.作为一个业内资深人士,我觉得这不能一概而论!要辩证 ...

  6. android用ImageView显示网络图片

    1.权限配置 <</SPAN>uses-permission android:name="android.permission.INTERNET"/> .c ...

  7. HW4.33

    public class Solution { public static void main(String[] args) { int sum; for(int i = 6; i < 1000 ...

  8. 工作7年,从《一个苏州IT人的5年挨踢经历》系列开始,博客1年半,纯纪念

    真正涉足CSDN,还是从<一个苏州IT人的5年挨踢经历>系列的发帖开始,当时大家比较捧场,遂把帖子内容整理,其后创建CSDN博客并发表于其上.有了这个开端,后续就习惯性的开始在CSDN写技 ...

  9. 使用sessionStorage得一个坑

    1.首先sessionStorage.setItem("isMybill" false) 2.使用的时候 sessionStorage.getItem('isMybill')  / ...

  10. XML 语法规则

    转摘自:http://www.w3school.com.cn/xml/xml_elements.asp XML 语法规则 XML 文档包含 XML 元素. XML 的语法规则很简单,且很有逻辑.这些规 ...