EL表达要取的值中包含双引号"" 单引号'' 怎么办?撒分!

ljl_ss 2010-12-16 11:48:30
EL表达要取的值中有双引号""也有单引号'' 怎么办?
如 <input type="text" value="${user.name}" 这种情况如果name本包含双引号和单引号咋办,用[]来取貌似都不行啊
...全文
1785 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
舞动de人生 2013-05-23
  • 打赏
  • 举报
回复
舞动de人生 2013-05-23
  • 打赏
  • 举报
回复
xin 2012-07-13
  • 打赏
  • 举报
回复
学习了
<c:out value="${s.name}" escapeXml="true"></c:out>

ai_juanjuan 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dyllove98 的回复:]

可以吗?引用 3 楼 how8586 的回复:

你的value完全可以写成这样 :value=${user.n"a"me}
[/Quote]应该不行
ljl_ss 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dyllove98 的回复:]
可以吗?

引用 3 楼 how8586 的回复:

你的value完全可以写成这样 :value=${user.n"a"me}
[/Quote]
这样是不行的,我是说有双引号和单引号同时存在的情况,只是单引号或双引号都好办直接就${user["name"]}就行了 ,有同学说value=${user["name"]}这种做法就更不行了,当里边有双引号也有单引号的时候会导致显在页面上字符串部分丢失的
难道没什么办去了么?EL表达式开发过程中没有测过这种情况么
Jlins 2010-12-16
  • 打赏
  • 举报
回复
可以吗?[Quote=引用 3 楼 how8586 的回复:]

你的value完全可以写成这样 :value=${user.n"a"me}
[/Quote]
yukiMark 2010-12-16
  • 打赏
  • 举报
回复
你的value完全可以写成这样 :value=${user.n"a"me}
qihigh 2010-12-16
  • 打赏
  • 举报
回复
<input type="text" value=${user.name}

这样试试看 我记得html属性可以不加双引号。
moon&sean 2010-12-16
  • 打赏
  • 举报
回复
双引号和单引号不能嵌套吗?
ousyuryu 2010-12-16
  • 打赏
  • 举报
回复
引进JSTL Funciton

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>


特殊字符转义

<input type="text" value="${fn:escapeXml(user.name)}" />
DearFen 2010-12-16
  • 打赏
  • 举报
回复
在对于安全性来说,对于要让用户输入的内容肯定是要进行转义
SQL关键字,符号,HTML 标签,符号,都要注意,如果你们的系统里有特殊字符
还是建议楼主做 字符转义吧
UPC_思念 2010-12-16
  • 打赏
  • 举报
回复
c:out标签有转义功能,可配合el表达式来使用
<input type="text" value="<c:out value='${user.name}'/>"/>
ljl_ss 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 zyujie 的回复:]
楼主,在后台数据查询出来的时候,要返回页面上的值有单双引号的,你可以写个方法转义一下,应该就行了。像这种一样:

Java code

//特殊字符转为Html
public static String toHtml(String s) {
s = Replace(s,"&","&amp;");
s = Replace(s,"<","&lt;"……
[/Quote]
嗯 ,谢谢你啊,这样可以,更重要的是我想知道EL表达式里有没有提供相关的符号进行将在取的属性转义一下就OK了的方式,因为我刚看到struts2的标签不存在这样的问题 ,他会自动转义"" ''EL没有感到奇怪了
mss9258 2010-12-16
  • 打赏
  • 举报
回复
我记得好想是用方括号啊
zyujie 2010-12-16
  • 打赏
  • 举报
回复
楼主,在后台数据查询出来的时候,要返回页面上的值有单双引号的,你可以写个方法转义一下,应该就行了。像这种一样:

//特殊字符转为Html
public static String toHtml(String s) {
s = Replace(s,"&","&");
s = Replace(s,"<","<");
s = Replace(s,">",">");
s = Replace(s,"\t"," ");
s = Replace(s,"\r\n","\n");
s = Replace(s,"\n","<br>");
s = Replace(s," ","  ");
s = Replace(s,"'","'");
s = Replace(s,"\\","\");
return s;
}
//逆
public static String unHtml(String s){
s = Replace(s,"<br>","\n");
s = Replace(s," "," ");
s = Replace(s,"<","<");
s = Replace(s,">",">");
s = Replace(s,"&","&");
return s;
}
DearFen 2010-12-16
  • 打赏
  • 举报
回复
有些字符有 实体名称,有些字符没有 实体名称
DearFen 2010-12-16
  • 打赏
  • 举报
回复
刚找错了

英文的单引号 应该是 '

你可以在网上搜一下 ISO LATIN-1这个字符集
DearFen 2010-12-16
  • 打赏
  • 举报
回复
那应该是HTML 字符转义吧
你要把你呈现在文本框中的值的
转义这个不用说了吧,SQL注入 等等都要转义的
双引号改成 ""

左单引号改成
右单引号改成
lisatisfy 2010-12-16
  • 打赏
  • 举报
回复
转义呢、

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧