我正在尝试使用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中动态设置变量名,这与其他语言不同。有更聪明的方法吗?
答案 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>
结果:
此示例使用页面上下文/范围,这是默认值。当然,如果需要,可以使用所有可用的上下文/范围(页面,请求,会话,应用程序)。