jstl语法限制

时间:2012-03-01 03:38:22

标签: java jstl

我正在尝试使用jstl语法手动设置变量值。

 <c:set var="var1" value="2"/>  
 <c:set var="var2" value="2"/>
 <c:set var="var3" value="2"/>
 <c:set var="var4" value="2"/>
 <c:set var="var5" value="2"/>
 <c:set var="var6" value="2"/>

上面的语法有效..但我很好奇为什么以下语法没有。

<c:forEach var="myVar" start="1" end="6">
 <c:set var="Display${myVar}" value="2"/>
</c:forEach>

为什么我们不能在jstl中动态设置变量名,这与其他语言不同。有更聪明的方法吗?

1 个答案:

答案 0 :(得分:0)

这是一个有效的代码示例:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<html>
    <%
        Map myMap = new HashMap();
        pageContext.setAttribute("theMap", myMap);
    %>
    <c:set target="${theMap}" property="aKey" value="value for a key" />
    <c:set target="${theMap}" property="otherKey" value="value for other key" />

    Map content: ${theMap}
</html>

结果:
result
此示例使用页面上下文/范围,这是默认值。当然,如果需要,可以使用所有可用的上下文/范围(页面,请求,会话,应用程序)。