我以前可以在Thymeleaf的表达式语言中使用数组文字(使用... OGNL?...我想...)。现在我使用Spring/JSP。JSP或Spring表达式语言支持数组文字吗?我找不到任何引用。
**更新:**这基本上是我想做的:
<c:set var="myUrls" value="${new String[] { mk:getUrl(), mk:getOtherUrl(), mk:getDifferentUrl()}}" />
<c:set var="myUrls" value="${new String[] {
mk:getUrl(),
mk:getOtherUrl(),
mk:getDifferentUrl()
}}" />
字符串
lfapxunr1#
你可以在Map、<jsp:useBean>和EL 2.2的帮助下,以一种无脚本的方式将它组合在一起。
<jsp:useBean>
<jsp:useBean id="map" class="java.util.LinkedHashMap" /><c:set target="${map}" property="url" value="${mk.url}" /><c:set target="${map}" property="otherUrl" value="${mk.otherUrl}" /><c:set target="${map}" property="differentUrl" value="${mk.differentUrl}" /><c:set var="array" value="${map.values().toArray()}" /><c:forEach items="${array}" var="item"> ${item}<br/></c:forEach>
<jsp:useBean id="map" class="java.util.LinkedHashMap" />
<c:set target="${map}" property="url" value="${mk.url}" />
<c:set target="${map}" property="otherUrl" value="${mk.otherUrl}" />
<c:set target="${map}" property="differentUrl" value="${mk.differentUrl}" />
<c:set var="array" value="${map.values().toArray()}" />
<c:forEach items="${array}" var="item">
${item}<br/>
</c:forEach>
字符串如果您的环境不支持EL 2.2,只需坚持使用Map并通过Map访问它。
<c:forEach items="${map}" var="entry"> ${entry.value}<br/></c:forEach>
<c:forEach items="${map}" var="entry">
${entry.value}<br/>
型应该注意的是,你的潜在问题更大。你不应该直接在视图中操作模型。控制器负责这一点。你应该以这样的方式修改模型,使其完全符合视图的期望。例如,通过添加属性,或者让控制器完成工作。
fjnneemd2#
fn:split用于字符串。就像标记一样
<tag extraParams="${fn:split('_target1,book', ',')}" />
zbdgwd5y3#
您可以使用scriptlet来使用vanilla Java,在JSP1.x中使用<% /* Java */ %>块,在JSP2中使用类似于:
<% /* Java */ %>
<jsp:scriptlet><![CDATA[pageContext.setAttribute("myArray", new String[] { "a", "b", "c" });]]></jsp:scriptlet><!-- so then ... -->${myArray} <!-- or ... --><c:forEach items="${myArray}" var="str"> <p>${str}</p></c:forEach>
<jsp:scriptlet><![CDATA[
pageContext.setAttribute("myArray", new String[] { "a", "b", "c" });
]]></jsp:scriptlet>
<!-- so then ... -->
${myArray} <!-- or ... -->
<c:forEach items="${myArray}" var="str">
<p>${str}</p>
3条答案
按热度按时间lfapxunr1#
你可以在Map、
<jsp:useBean>
和EL 2.2的帮助下,以一种无脚本的方式将它组合在一起。字符串
如果您的环境不支持EL 2.2,只需坚持使用Map并通过Map访问它。
型
应该注意的是,你的潜在问题更大。你不应该直接在视图中操作模型。控制器负责这一点。你应该以这样的方式修改模型,使其完全符合视图的期望。例如,通过添加属性,或者让控制器完成工作。
fjnneemd2#
fn:split用于字符串。就像标记一样
字符串
zbdgwd5y3#
您可以使用scriptlet来使用vanilla Java,在JSP1.x中使用
<% /* Java */ %>
块,在JSP2中使用类似于:字符串