gpt4 book ai didi

escaping - 如何在 JSTL/EL 表达式中同时使用单引号和双引号?

转载 作者:行者123 更新时间:2023-12-05 00:35:50 24 4
gpt4 key购买 nike

我想在 c:out 内的 EL 内调用 fn:replace 来替换引号字符。

以下不起作用

<c:out value="${fn:replace(userName,'"','\\"')}"/>

因为 XML 解析器在第一个双引号处停止并且看不到 c:cout 标记终止(JSP 编译阶段错误)。

下列
<c:out value="${fn:replace(userName,'&quot;','\\&quot;')}"/>

不起作用,可能是因为替换函数没有看到实际的引号字符。

最佳答案

<c:set> 参数化它们.

<c:set var="search" value='"' />
<c:set var="replace" value='\\"' />
<c:out value="${fn:replace(userName, search, replace)}"/>

无关 具体的问题,你还没有吗 considered一个真正的 JSON 生成器?例如,对于 Gson,考虑到 user,这是以下 oneliner 的问题是一个完整的Javabean:
String json = new Gson().toJson(user);

您将直接获得语法上有效的 JSON,而无需摆弄所有让 JSP/JSTL/EL 生成有效 JSON 的方法。

关于escaping - 如何在 JSTL/EL 表达式中同时使用单引号和双引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8898815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com