题
我看到了一些代码如下JSP
<c:if test="<%=request.isUserInRole(RoleEnum.USER.getCode())%>">
<li>user</li>
</c:if>
我的混淆,是过"="出现在价值的 test
属性。我的理解是,任何东西列入内 <%= %>
打印输出,但是肯定值分配的测试必须是一个布尔,那么为什么不这工作吗?
为奖励点数,是否有任何方式改变特性的价值以上,这样它不使用脚本代码?据推测,这意味着使用EL代替。
干杯, 别
解决方案
所 test
属性,看来对于确定如果事情真的是一串"真正的"(情况下,在敏感).例如,以下代码打印"hello world!"
<c:if test="true">Hello world!</c:if>
代码以内 <%= %>
返回布尔,因此,它将打印的字符串的"真实"或"虚假",这是到底是什么 <c:if>
标签。
其他提示
你也可以用的东西喜欢
<c:if test="${ testObject.testPropert == "testValue" }">...</c:if>
表达之间 <%=%>进行评估之前,c:如果标记进行评估。所以,假如|请求。isUserInRole|返回|true|,你的例会进行评估,以此为先:
<c:if test="true">
<li>user</li>
</c:if>
然后c:如果标记,将被执行。
属性JSP标签的图书馆一般可以是静态的或得到解决,在请求的时间。如果他们决心在请求的时间JSP将解决他们的价值在运行时和传输上的标签。这意味着你可以把非常任JSP码进入的属性和标记的行为将据此来什么样的产出,产生。
如果你看jstl标签库的文档,你可以看到哪些属性reuest时间和哪些不是。 http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/index.html
<%=%>通过本身将发送给输出,在上下文的JSTL这将是评估一个字符串
不隶属于 StackOverflow