jQuery.form.js进行表单提交,中文乱码问题及解决
来源:互联网 发布:松江3208g编程类型代码 编辑:程序博客网 时间:2024/05/22 17:39
源于使用jquery,form.js进行表单提交时,发现保存到数据库时失败,而页面都已经统一为GBK编码;在网上搜了一些答案大部分都是复制粘贴,并不能解决
文章内容如下:
目前处理一个项目需要使用到jquery的form插件进行jsp页面中的form异步提交,我的java和jsp编码都是GBK的,并且在web.xml中也设置了编码格式为GBK。可是就是这个原因让我碰到了提交表单时出现中文乱码的事情。
解决办法:经测试OK!!!
没有采用form插件(采用form插件解决办法一样直接对data进行二次转码),而是直接使用jquery的$.ajax()函数进行异步请求:
$(document).ready(function(){
$('#submit').click(function(){
var formData = $('#frm1').serialize(); //取表单值 并进行序列化;此时formData已经是乱码了
formData = decodeURIComponent(formData,true);//一次转码
formData = encodeURI(encodeURI(formData)); //两次转码
$.ajax({
type:'post',
data:formData,//form表单数据集
url:'/bshgl/bshczxxcj/admin/writeJbxx.jspx',
success:function(){
alert("保存成功!");
}
});
});
});
后台采用springMVC的annotation进行form表单数据接收
String test= URLDecoder.decode(object.getXxx(), "UTF-8");
..../*下面的代码则是调用hibernate方法将数据保存到database中*/
得到的test字符为中文。并且可以存入编码为GBK的数据库中,木有问题。
而我目前急需解决的问题,后台采用springMVC ,使用@ModelAttribute所接收的form值置于一个对象里面即object中,如果我想将form中的值异步更新到数据库中,那么我就需要对所有的字段进行get和decode。这样做的很麻烦,不知道各位有什么好的办法吗?···
好吧,下面提供我的办法··············但是目前这个办法还不完善:
因为使用的spring来进行bean管理,所以我现在使用的框架中,在entity层和bo层之间还有一个称为dto的一层,他的职责很简单明确,只负责数据传输,每次entity从数据库读取数据,都先将数据copy到dto层,让其去于view打交道,这里就把URLDecoder.decode(object.getXxx(), "UTF-8");置于dto的所有字段的get,set方法中,这样就不需要在Controller层再分别对每个字段进行get并decode了。 不完善的原因是········我在执行bean 拷贝的时候有部分数据没有拷贝进行·····蛋疼
1 1
- jQuery.form.js进行表单提交,中文乱码问题及解决
- jQuery.form.js使用ajaxSubmit()提交表单时返回中文乱码的问题
- Spring MVC 解决form表单提交中文乱码问题
- 表单form内容提交,中文乱码解决
- jquery form表单.serialize()序列化后中文乱码问题原因及解决
- jquery form表单.serialize()序列化后中文乱码问题原因及解决
- jquery form表单.serialize()序列化后中文乱码问题原因及解决decodeURIComponent
- jquery form表单.serialize()序列化后中文乱码问题原因及解决decodeURIComponent
- 关于提交form表单中文乱码问题
- 关于Form表单提交中文乱码问题
- form表单提交中文乱码问题
- form表单提交中文乱码问题
- form表单提交中文乱码
- 解决 jsp表单提交中文乱码问题!
- 解决表单提交中文乱码问题
- JSP+Servlet学习经验1:解决form表单提交后相应页面中文乱码的问题
- form表单提交乱码问题
- struts中form表单提交过程中的中文乱码问题
- 关于profile使用简介
- Thread(线程间通讯,等待唤醒机制)
- Binary String Matching
- string 类的实现
- 先序和中序建立二叉树
- jQuery.form.js进行表单提交,中文乱码问题及解决
- Qt4.8单实例启动的一种方法
- 项目软件编程下载地址
- Eliminate the application levels, a new concept on equipment/automation/Logistic control software 消除
- appium1.3.7的坑-Original error: Could not initialize ideviceinstaller; make sure it is installed ...
- HDU 4544 湫湫系列故事——消灭兔子
- 第三方支付
- iOS APP网络分析之rvictl(可以捕捉除了Wifi以外的网络类型)
- 用简单的方法做整套UI(教程第一/二/三弹合集)