这是我的第one篇博客,写的有不好的希望大家可以多提提意见或者建议,谢谢!
前两天项目需要写一个页面输入特殊字符点击保存,查询数据库需要将特殊字符(.,>,<,@,&,*[等程序里的特殊字符])串展示到页面上,查了一些资料,现在将自己的经验分享给大家!
说到这里,我想说hibernate真是一个强大的框架!<后续说为什么>
前台的写法:
为了方便看省略一些代码吧。。。
<script type="text/html">
...
function save(){
var p =encodeURIComponent($.trim($("#p").val()));//页面验证字符编码
if(验证){
var parm ="&p="+$("#p").val()
}
}
ajax.({
....
url:...
data:'...'+param //参数传进后台
<span style="white-space:pre"> </span> ...
})
...
</script>
<span style="white-space:pre"> </span>
<span style="font-size:18px;">后台(java)的代码,对字符做处理,java中有一些特殊字符的转换标识:</span>
<pre name="code" class="java" style="font-size:14px;">MtsOutput mtsOutput = new MtsOutput()
String p = paramBean.getP();
p = p.replace("<","<").replace(">",">");
mtsOutput .setP(P)
....
这样就可以解决了。
<span style="font-size:18px;">别走开,后面很精彩~~~</span>
<span style="font-size:18px;">在我debug的时候不小心注释了后台那行转换代码发现页面照样可以展示出<,>,@,.,等符号,我迫不及待的翻阅资料这到底是怎么一回事的时候,终于解出答案来</span>
<span style="font-size:18px;">这就是我前面所说的hibernate很强大的一个功能,原来hibernate机制本身就对有些特殊符号进行转换了,只要给页面jsp中添加《<span style="font-family: Arial, Helvetica, sans-serif;">encodeURIComponent</span><span style="font-family: Arial, Helvetica, sans-serif;"> 》一行代码就可以了,但是还有一些特殊符号hibernate机制没有转换,如&,这个符号,我又用了java代码的replace方法解决,可发现hibernate不支持,问题在陷入了僵局之时,有位大神指点迷津,在oracle的sql语句中有个函数replace,就上述问题而言,查询数据库展示到页面,写个sql查询语句如下:</span></span><pre name="code" class="java">select replace(mo.p,'&','&') from Mts_Output mo where ...;
问题解决了!