由于调用Jquery的序列化方法时,jQuery会自动进行编码处理,因此后台使用前,应该先进行解码,然后再使用
// 使用
DynaBean dynaBean = (DynaBean) form;
super.decodeCharacterForGetMethod(dynaBean, request);
// 方法
public void decodeCharacterForGetMethod(Object object, HttpServletRequest request) throws Exception {
if (!StringUtils.equalsIgnoreCase(request.getMethod(), "GET")) {
return;
}
if (object instanceof DynaBean) {
DynaBean dynaBean = (DynaBean) object;
DynaProperty origDescriptors[] = dynaBean.getDynaClass().getDynaProperties();
for (int i = 0; i < origDescriptors.length; i++) {
String name = origDescriptors[i].getName();
if (getBeanUtilsBean().getPropertyUtils().isWriteable(dynaBean, name)) {
Object value = dynaBean.get(name);
if (value instanceof String) {
getBeanUtilsBean().copyProperty(dynaBean, name, URLDecoder.decode(value.toString(), "UTF-8"));
}
}
}
} else {// is a standard JavaBean
PropertyDescriptor origDescriptors[] = getBeanUtilsBean().getPropertyUtils().getPropertyDescriptors(object);
for (int i = 0; i < origDescriptors.length; i++) {
String name = origDescriptors[i].getName();
if ("class".equals(name)) {
continue; // No point in trying to set an object's class
}
if (getBeanUtilsBean().getPropertyUtils().isReadable(object, name)
&& getBeanUtilsBean().getPropertyUtils().isWriteable(object, name)) {
Object value = getBeanUtilsBean().getPropertyUtils().getSimpleProperty(object, name);
if (value instanceof String) {
getBeanUtilsBean().copyProperty(object, name, URLDecoder.decode(value.toString(), "UTF-8"));
}
}
}
}
}
public BeanUtilsBean getBeanUtilsBean() {
return BeanUtilsBean.getInstance();
}
分享到:
相关推荐
Jquery serialize() 中文乱码及解决方法 的文档形式 Jquery
jquery的serialize方法把中文转化成GBK的编码方式。
serialize() 方法创建以标准 URL 编码表示的文本字符串,下面为大家介绍下jQuery serialize方法的使用
前端项目-jquery-serialize-object,serialize form fields into an object or JSON
使用ajax时,常常需要拼装input数据为'name=abc&sex=1'这种形式,用JQuery的serialize方法可以轻松的完成这个工作接下来介绍jQuery ajax - serialize() 方法定义和用法,感兴趣的朋友可以了解下啊,希望本文对你有所...
本文实例讲述了jQuery基于ajax()使用serialize()提交form数据的方法。分享给大家供大家参考,具体如下: jQuery的serialize()方法通过序列化表单值,创建URL编码文本字符串,我们就可以选择一个或多个表单元素,也...
serialize()方法通过序列化表单值,创建标准的URL编码文本字符串,它的操作对象是代表表单元素集合的jQuery 对象。你可以选择一个或多个表单元素(比如input或文本框),或者 form 元素本身。序列化的值可在生成 ...
jQuery ajax中数据以键值对(Key/Value)的形式发送到服务器,使用ajax提交表单数据时可以使用jQuery ajax的serialize() 方法表单序列化为键值对(key1=value1&key2=value2…)后提交。serialize() 方法使用标准的 ...
自己写的一个jquery复杂表单序列化工具
当我们使用ajax时,常常需要拼装input数据以键值对(Key/Value)的形式发送到服务器,用JQuery的serialize方法可以轻松的完成这个工作,使用这个方法可以将表单序列化为键值对(key1=value1&key2=value2…)后提交。...
原因:.serialize()自动调用了encodeURIComponent方法将数据编码了 解决方法:调用decodeURIComponent(XXX,true);将数据解码 例如: var params = jQuery("#formId").serialize(); // http request parameters. ...
jquery.serialize() 函数语法及简洁实例_.docx
jQuery – serialize() 方法 W3School给出的定义与用法: serialize() 方法通过序列化表单值,创建 URL 编码文本字符串。 您可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素本身。 序列化...
第1章 第一个简单的jQuery程序...解决jQuery库后于其他库导入时变量“$”的使用权 使用子查询优化选择器性能 减少对DOM元素直接操作 DOM对象与jQuery对象的类型转换 第11章 应用案例-聊天室系统 应用案例_图片切割
NULL 博文链接:https://xiongjiajia.iteye.com/blog/1562229
虽然jQuery使用简单,但它毕竟是一门新的技术,与传统的JavaScript在性能与语法上存在诸多差异,需要相应的书籍来引导开发者们迅速而有效地掌握它,并能真正付诸实践。综观现在已经出版的中文类jQuery图书,不是...
jquery提供的serialize方法能够实现。 $("#searchForm").serialize(); 但是,观察输出的信息,发现serialize()方法做的是将表单中的数据以htpp请求格式拼接成字符串。 serialize确实是能够解决一般的提交数据。但是...