ExtJs表单向后台提交数据的时候。出现乱码,下面是代码var form = new Ext.form.FormPanel({
labelAlign: 'right',
labelWidth: 50,
frame: true,
url: 'diary!add.action',
items: [{
xtype: 'textfield',
name: 'diary.title',
fieldLabel: '标题'
}],

buttons: [{
text: '保存',
handler: function(){
form.getForm().submit({
success:function(form,action){
Ext.Msg.alert('信息', action.result.msg);
},
failure:function(){
Ext.Msg.alert('错误','操作失败!');
}
});
}
}
这里贴的是部分代码。extjs

解决方案 »

  1.   

    你的提交是没有问题的。出现乱码是因为你的编码不一致的缘故,你应该把后台的编码和前台的编码都调成一样的,这样子就不会有乱码了。
    实在不行就前台先encode,然后后台再decode。
      

  2.   

    1.我这是测试,先encode,然后后台再decode。 还可以接受。马上写项目会有很多字段。表单。都要这样做好像不成吧
    2.我把index.jsp和对应的js文件还有action文件,全部改成gbk,统一编码。还是不行。
      

  3.   

    在web.xml里面配置<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>
    org.springframework.web.filter.CharacterEncodingFilter
            </filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
    <param-name>forceEncoding</param-name>
    <param-value>true</param-value>
    </init-param>
    </filter>
    然后在weblogic里面配置:<jsp-descriptor>
    <jsp-param>
    <param-name>keepgenerated</param-name>
    <param-value>true</param-value>
    </jsp-param>
    <jsp-param>
    <param-name>compilerSupportsEncoding</param-name>
    <param-value>true</param-value>
    </jsp-param>
    <jsp-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
    </jsp-param>
    </jsp-descriptor>