Servlets 使用JSTL“;“动态”;参数名
JSTL代码:Servlets 使用JSTL“;“动态”;参数名,servlets,jstl,el,Servlets,Jstl,El,JSTL代码: <c:forEach var = "currentUser" items = "${users}"> <c:out value = "${currentUser.userName}" /></p> <c:if test = "${!empty param.${currentUser.id}}"> <p>Details</p> </c:if> </c:f
<c:forEach var = "currentUser" items = "${users}">
<c:out value = "${currentUser.userName}" /></p>
<c:if test = "${!empty param.${currentUser.id}}">
<p>Details</p>
</c:if>
</c:forEach>
问题是,现在if必须在if测试中使用“id”的值,而不是作为参数,而是作为参数名。我已经试过用EL来表达,但我确信这是不允许的。还有其他建议吗?在我看来,你让事情变得比可能的更复杂了。我只想这么做
req.setAttribute("userDetails", userDetails);
并且,在JSP中,测试当前用户的ID是否与正在详细说明的ID相同:
<c:if test="${userDetails.id == currentUser.id}">
<p>Details</p>
</c:if>
细节
顺便说一句,param.foo返回请求参数的值,而不是请求属性的值。
你可以通过使用
<c:if test = "${!empty requestScope[currentUser.id]}">
用
[]
符号代替
运算符是传递动态名称而不是静态名称的方法。谢谢!这真的很有帮助!
<c:if test = "${!empty requestScope[currentUser.id]}">