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

在JSP页面开发中,使用JSTL表达式设置input的value值时,若数据库字段包含双引号,会导致显示异常。例如,字段值为"北京大学"或北京"大学"时,input框会显示为空或仅部分内容。解决方法包括使用<c:out>标签进行转义,或者在服务端将双引号替换为HTML转义字符。这些方法能确保正确输出含有双引号的数据。
摘要由CSDN通过智能技术生成

 

http://t.csdn.cn/fOOlS

在做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的值也可以实现

原文链接:https://blog.csdn.net/fysuccess/article/details/74819873

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值