在开发过程出现这么一个问题:
比如:一个字段content 类型CLOB,这其中存的有可能复制粘贴过来的word excel html中的内容,用java将这些内容存入,存入后有特殊的符号 比如回车换行等。那么不能正常展示的数据。
解决方案:
存入数据的是将这个数据contentdata在js中进行
String(contentdata).replace(/&/g, "&").replace(/>/g, ">").replace(/</g, "<").replace(/"/g, """);
html标签编译处理(此处引用在Ext.util.Format.htmlEncode ,如果是ext数据提交直接Ext.util.Format.htmlEncode(contentdata))
在后台用提交用
Context initCtx = new InitialContext(); DataSource ds = (DataSource)JNDIUtil.lookup(initCtx) ;
Connection conn = ds.getConnection();
PreparedStatement ps=conn.prepareStatement("insert...values(?...)"),
ps.setObject(5,contentdata)
......
jsp中展示:sql语句中对此字段进行这样的处理:select REPLACE(REPLACE(content,chr(13),''),chr(10),'') content from table;
输出:
.....
<tr> <td><span> 内 容:</span></td><td><span id="content" >
<% String content=rs.getClob(5)==null?"":rs.getClob(5).getSubString((long)1, (int)rs.getClob(5).length());//读取出clob数据进行clob到字符串的转换%>
<script>
document.getElementById("content").innerHTML=String("<%=content%>").replace(/&/g, "&").replace(/>/g, ">").replace(/</g, "<").replace(/"/g, '"');//将转换后的字符串在进行html标签的反编译,(此处引用在Ext.util.Format.htmlDecode ,如果是ext数据提交直接Ext.util.Format.htmlDecode(content))
</script>
</span></td></tr>
.......