首页 > 解决方案 > 向 c:set 或 ArrayList 添加双引号

问题描述

在 c:set 或 ArrayList 或 JavaScript 变量中的每个元素上附加双引号可能很简单的代码。

在 ac:set(包含母亲、婴儿等)之后,我填充了一个 ArrayList(然后包含 [母亲、婴儿、孩子、员工] 等),然后将其“获取”到 JavaScript 中。

最终输出是 [mother, child, staff] 等,但我需要它是 ["mother", "baby", "child", "staff"] 等

After a sql:select - 
<c:set var="type" value="${row.Type}"  />

Add to an ArrayList -
       types.add(pageContext.getAttribute("type"));

Get into javascript (after the jstl forEach loop completes)-

var typesArray = [<% for (int i = 0; i < types.size(); i++) { %>"<%=types.get(i)%>"<%= i + 1 < types.size() ? ",":"" %><% } %>];    

无法向 c:set 添加双引号,因为它会转义/失败 -

<c:set var="type" value=""${row.Type}""  />

我真的不想使用 StringBuffer,因为这会影响 JavaScript 获取迭代器,这需要我几天才能开始工作。

假设旧 Java / 旧 Javascript

想法赞赏。问候。拉尔夫

标签: javascriptjava

解决方案


使用单/双引号换行,

<c:set var="type" value="'${row.Type}'"  /> 

或者

<c:set var="type" value='"${row.Type}"'  />

相似地 ,

var typesArray = [<% for (int i = 0; i < types.size(); i++) { %>"'<%=types.get(i)%>'"<%= i + 1 < types.size() ? ",":"" %><% } %>]; 

或者

var typesArray = [<% for (int i = 0; i < types.size(); i++) { %>'"<%=types.get(i)%>"' <%= i + 1 < types.size() ? ",":"" %><% } %>];

推荐阅读