Java 如何在JSTL/JSP中连接循环中的字符串?
我想连接currentItem.myVar的值并在循环结束时输出它,问题是我不知道如何做Java 如何在JSTL/JSP中连接循环中的字符串?,java,string,jsp,loops,concatenation,Java,String,Jsp,Loops,Concatenation,我想连接currentItem.myVar的值并在循环结束时输出它,问题是我不知道如何做 (最好不要使用Java)使用JSP标记定义字符串变量 <c:forEach items="${myParams.items}" var="currentItem" varStatus="stat"> <c:set var="myVar" value="<c:out var="myVar" />" /> </c:forEach> 然后将循环中的变量称为
(最好不要使用Java)使用JSP标记定义字符串变量
<c:forEach items="${myParams.items}" var="currentItem" varStatus="stat">
<c:set var="myVar" value="<c:out var="myVar" />" />
</c:forEach>
然后将循环中的变量称为
<%!
String test = new String();
%>
测试+=whaterver_值
也许这样行吗
<c:forEach items="${myParams.items}" var="currentItem" varStatus="stat">
test+= whaterver_value
</c:forEach>
您正在使用JSTL 2.0,对吗?您不需要在所有变量周围放置
。你试过这样的东西吗
<c:forEach items="${myParams.items}" var="currentItem" varStatus="stat">
<c:set var="myVar" value="${stat.first ? '' : myVar} ${currentItem}" />
</c:forEach>
Edit:被上述问题击败的是JSTL的join()
,您搜索的是什么
<c:forEach items="${myParams.items}" var="currentItem" varStatus="stat">
<c:set var="myVar" value="${myVar}${currentItem}" />
</c:forEach>
使用Java不是解决这个问题的方法,我想我需要使用JSTLalmost-1来表示新字符串()。“”怎么样?是的,我理解新字符串()。我错了!这是可以的,除了第一个值是null=/first value null:只需在循环外执行另一个c:set来初始化myVar。然后可能将set标记包装在if?EL不会将null
值作为“null”
字符串进行计算。问题出在别的地方。显然,它被错误地设置为“null”
字符串。感谢Ben和@Subin,它为我节省了很多时间。这没关系,除了第一个值为nullOK外,我添加了一个检查以查看它是否是第一次通过循环。这行得通吗?您可以使用相同的概念来使用如下分隔符连接字符串:value=“${ids}${stat.first?”,“}${currentItem.id}”
<c:set var="myVar" value="${fn:join(myParams.items, ' ')}" />