Ext显示特殊字符问题

来源:互联网 发布:python删除指定字符串 编辑:程序博客网 时间:2024/05/21 06:55

最近做项目遇到下列问题:

定义一个TextArea,值取<s:property value="#normalModelDetail.postParam" escape="false"/>

问题1:由于给控件赋值一般都用单引号、双引号括起来,而这个字段值中有可能包含单引号、双引号,直接赋值就会导致报字符串未结束或缺少什么的错误,

              解决方法:从数据库读出字段值后做个处理,将单引号全部替换为“&#39”,要展示的时候在页面上先赋值然后再把“&#39;”全部替换回来就可以了。

             后台读取:

             normalModelDetail = normalModelDetailFacade.getNormalModelDetail(map);
     String lStr = normalModelDetail.getPostParam().replaceAll("'", "&#39;");
     normalModelDetail.setPostParam(lStr);

            页面展示:

             var reg1 = new RegExp("&#39;","g"); //创建正则RegExp对象

             var postParam = new Ext.form.TextArea({
fieldLabel : 'POST参数',
id : 'postParam',
name : 'normalModelDetail.postParam',
height : 70,
width : 405,
value : '<s:property value="#normalModelDetail.postParam" escape="false"/>'.replace(reg1, "'")

             });


问题2:当字段值有回车换行时,由于js不支持多行字符串,未处理直接赋值将导致字符串未结束的错误,

              解决方法,字段在从数据库读出后做个处理,将回车换行全部替换为“<br>”,然后在页面赋值后再替换回来。

              后台:normalModelDetail = normalModelDetailFacade.getNormalModelDetail(map);
          String lStr = normalModelDetail.getPostParam().replaceAll("\r\n", "<br>");
  normalModelDetail.setPostParam(lStr);

              页面:var reg1 = new RegExp("&#39;","g"); //创建正则RegExp对象
                  var reg2 = new RegExp('<br>', 'g');

                         var postParam = new Ext.form.TextArea({
            fieldLabel : 'POST参数',
            id : 'postParam',
            name : 'normalModelDetail.postParam',
              height : 70,
            width : 405,
            value : '<s:property value="#normalModelDetail.postParam" escape="false"/>'.replace(reg1, "'").replace(reg2,'\r\n')
                  });


原创粉丝点击