我使用ExtJS和Struts1作为应用程序,当用户使用英语的这个应用程序并显示组合框(内部表格)时,选择是另一种语言(西班牙语),但不是英语.保存表单并重新加载页面后,此参数以英语显示(但如果用户再次显示组合框,则以西班牙语显示).用正确的语言显示组合框的错误是什么?
这是发生的事情:
代码有超过4k行,这是组合框创建,如果你需要更多行我没有任何问题放在这里.
var storeTipoProcedimiento = new Ext.data.SimpleStore({ proxy: dameProxy( 'gestionPlanes.do' ),autoLoad: true,fields: [ {name: 'idTipoProcedimiento',type: 'int'},{name: 'descripcion'} ],baseParams: { method: 'buscarTipoProcedimiento' } }); //combo para buscar los tipos de procedimientos function dameComboTipoProcedimiento(){ var combo = new Ext.form.ComboBox({ store: storeTipoProcedimiento,valueField: 'idTipoProcedimiento',fieldLabel:'<bean:message key="label.gd.tab2.tipoProc"/>',displayField:'descripcion',labelStyle: 'color: red; width: 114px;',fieldClass: 'padding-left: 50px;',mode:'local',triggerAction:'all',editable: false,name: 'Select_Tipo',id: 'Select_Tipo',hiddenName: 'idTipo',width: 190,emptyText: '<bean:message key="label.gd.tab2.tipoProc.msgElijaTipo"/>',listeners: { 'collapse': function(){ tipoProcedimientoId = this.value; },select:{fn:function(combo){ tipoProcedimientoId = combo.getValue(); }} } }); return combo; }
解决方法
检查服务器的响应.您加载组合框的请求可能正在返回西班牙语数据而不是英语数据. 可能是服务器能够将第一个请求识别为正确的本地化但是对于下一个命中它无法检测到.共享商店和代理设置的代码.也许我们可以通过看到这一点来判断.