我想调用fn:在c里面替换EL:out来替换引用字符。
以下不起作用
<c:out value="${fn:replace(userName,'"','\\"')}"/>
因为XML解析器在第一个双引号处停止并且看不到c:cout标记终止(JSP编译阶段错误)。
以下
<c:out value="${fn:replace(userName,'"','\\"')}"/>
不起作用,可能是因为替换函数没有看到实际的引号字符。
答案 0 :(得分:5)
使用<c:set>
对其进行参数化。
<c:set var="search" value='"' />
<c:set var="replace" value='\\"' />
<c:out value="${fn:replace(userName, search, replace)}"/>
无关,你还没有considered真正的JSON生成器吗?以Gson为例,它是以下oneliner的问题,因为user
是一个值得尊敬的Javabean:
String json = new Gson().toJson(user);
您将直接获得语法上有效的JSON,而无需摆弄所有方法来使JSP / JSTL / EL生成有效的JSON。