jsp页面input的value中的值含英文双引号处理方法

来源:互联网 发布:导弹拦截 CSDN C语言 编辑:程序博客网 时间:2024/06/06 02:27


jsp页面input的value值输出含英文双引号问题解决

在做Jsp页面开发时,我们经常使用JSTL表达式来进行页面的输出,但是突然遇到如下一个问题
问题描述:当数据库中某个字段带双引号时,input文本框使用Jstl表达式直接直接设备value值时,会出现显示为空
的不正常现象。

<input type="text" class="form-control" id="place" name="place" value="${place}">

上面这种情况看起来是正确的,但是没有遇到特色情况,如果数据库中place字段的值是 "北京 大学" 或者北京"大学"
这种情况下该input输入框的值会显示什么呢?
答案是:
第一种情况显示 空白;


"北京 大学"


第二种情况显示 北京


北京"大学"


当然上面两种情况都不能显示出正确的输出,原因是input的value接收数据时会原样输出,
导致输出英文的双引号同html元素的双引号进行了组合,产生了冲突,故不能产生正确的输出。
若是想解决该问题,有很多实现方式,我提供如下两种参考实现方法
1).使用jstl的另外一个表达式<c:out>实现,将value的值使用<c:out>表达式输出

<input type="text" class="form-control" id="place" name="place" value="<c:out value="${place}"></c:out>">

2).在服务端对双引号进行转义,即将双引号替换成html的转义字符"

place.replaceAll("\"",""");

以上只是其中2种实现方法,还有其他的实现,比如使用Jquery去改变value的值也可以实现

 
原创粉丝点击