我正在尝试使用2如果条件设置两个变量,但它不起作用。 我的代码段如下:
<c:forEach items="${user.roles}" var="role">
<span>Value : ${role.id }</span> **<!-- Print the value perfectly-->**
<c:if test="${role.id == 3}">
<c:set var="admin" value="${role.id}"></c:set>
<span>Value : ${val }</span>
</c:if>
<c:if test="${role.id == 2}"> **<!-- But not work condition here -->**
<c:set var="supporter" value="${role.id}"></c:set>
<span>Value : ${val }</span>
</c:if>
</c:forEach>
<input type="checkbox" name="roles" value="3" ${admin ==3 ? 'checked' : ''}> Supporter
<input type="checkbox" name="roles" value="2" ${supporter ==2 ? 'checked' : ''}> Admin
添加了标签Lib:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
答案 0 :(得分:2)
如果条件更改此行,则使用错误的语法
<c:if test="${$rold.id == 3}">
至<c:if test="${role.id == 3}">
我认为它适合你
答案 1 :(得分:1)
尝试:
<c:forEach items="${user.roles}" var="role">
<span>Value : ${role.id }</span> **<!-- Print the value perfectly-->**
<c:if test="${rold.id == 3}">
<c:set var="admin" value="${role.id}"></c:set>
<span>Value : ${val }</span>
</c:if>
<c:if test="${role.id == 2}"> **<!-- But not work condition here -->**
<c:set var="supporter" value="${role.id}"></c:set>
<span>Value : ${val }</span>
</c:if>
</c:forEach>
附注:比较将在${...}
内进行评估。您不需要额外的$
答案 2 :(得分:1)
首先,我想这必须是role.id而不是rold.id:
<c:if test="${$rold.id == 3}">
此外,您的角色调用必须使用单个“$”符号,如下所示:
test="${role.id == 3}"
或
test="${role.id eq 3}"
在这里,您可以找到更多相关信息: http://www.javatips.net/blog/jstl-check-equals-not-equals