由于调用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();
}
分享到:
相关推荐
这种问题的原因是 serialize() 方法自动调用了 encodeURIComponent 方法将数据编码了,从而导致中文乱码。解决这个问题的方法是调用 decodeURIComponent 方法将数据解码。 在实际应用中,我们可以使用以下方法来...
jquery的serialize方法把中文转化成GBK的编码方式。
"前端项目-jquery-serialize-object"是一个关于如何使用jQuery处理表单数据的示例项目,其核心在于将表单字段转换为JavaScript对象或JSON格式,以适应现代Web应用的数据交互需求。了解和掌握这些技术对于提升前端...
jQuery是一个非常流行的JavaScript库,它提供了一种非常简单的方法来遍历和操作DOM树、处理事件、进行动画和Ajax交互。其中,Ajax是jQuery的一个核心功能,它使得在不重新加载页面的情况下,与服务器交换数据并更新...
使用ajax时,常常需要拼装input数据为'name=abc&sex=1'这种形式,用JQuery的serialize方法可以轻松的完成这个工作接下来介绍jQuery ajax - serialize() 方法定义和用法,感兴趣的朋友可以了解下啊,希望本文对你有所...
总结来说,处理jQuery serialize()方法导致的中文乱码问题,关键是要理解encodeURIComponent与decodeURIComponent的编码解码机制,并在需要的时候对序列化数据进行正确的解码处理。这样可以确保数据的正确传输和使用...
`serialize()`和`serializeArray()`是jQuery提供的一对非常实用的工具方法,主要用于处理表单数据。这两个方法在网页开发中尤其关键,因为它们能够方便地将用户在表单中输入的数据转化为适合发送到服务器的格式。 `...
3. **表单数据发送**:可以使用`serialize()`或`serializeArray()`方法获取表单数据,然后作为AJAX请求的data参数。 **四、处理响应数据** 1. **JSON响应**:后台通常会返回JSON格式的数据,前端需要解析这些数据...
jQuery的`.serialize()`方法可以将表单元素序列化为URL编码格式,方便与后台进行数据交互: ```javascript $('form').submit(function(event) { event.preventDefault(); // 阻止表单默认提交行为 var formData =...
本文实例讲述了jQuery基于ajax()使用serialize()提交form数据的方法。分享给大家供大家参考,具体如下: jQuery的serialize()方法通过序列化表单值,创建URL编码文本字符串,我们就可以选择一个或多个表单元素,也...
serialize()方法通过序列化表单值,创建标准的URL编码文本字符串,它的操作对象是代表表单元素集合的jQuery 对象。你可以选择一个或多个表单元素(比如input或文本框),或者 form 元素本身。序列化的值可在生成 ...
在使用jQuery UI Dialog组件进行表单提交时,有时会出现后台无法获取到表单数据的问题。这个问题通常是由于前端处理不当或后端接收方式不正确导致的。以下是对这个问题的详细分析和解决方案。 首先,jQuery UI ...
jQuery ajax中数据以键值对(Key/Value)的形式发送到服务器,使用ajax提交表单数据时可以使用jQuery ajax的serialize() 方法表单序列化为键值对(key1=value1&key2=value2…)后提交。serialize() 方法使用标准的 ...
自己写的一个jquery复杂表单序列化工具
当我们使用ajax时,常常需要拼装input数据以键值对(Key/Value)的形式发送到服务器,用JQuery的serialize方法可以轻松的完成这个工作,使用这个方法可以将表单序列化为键值对(key1=value1&key2=value2…)后提交。...
jQuery 是一个 JavaScript 库,它简化了 JavaScript 的使用,包括对 DOM 操作、事件处理、动画制作以及,当然,Ajax 请求。 ### 1. jQuery 的引入 首先,要在项目中使用 jQuery,你需要在 HTML 文件的 `<head>` ...
在工业自动化领域,TIA博途( Totally Integrated Automation Portal)是西门子提供的一款全面集成自动化软件,用于设计、编程、模拟和维护自动化系统。在TIA博途中,序列化指令`Serialize`是一个非常重要的功能,它...
大家知道Jquery中有serialize方法,可以将表单序列化为一个“&”连接的字符串,但却没有提供序列化为Json的方法。不过,我们可以写一个插件实现。 我在网上看到有人用替换的方法,先用serialize序列化后,将&替换...