小编典典

JSTL中的测试属性 标签

jsp

我在JSP中看到了一些类似于以下的代码

<c:if test="<%=request.isUserInRole(RoleEnum.USER.getCode())%>">
    <li>user</li>
</c:if>

我对test属性值中出现的“ =”感到困惑。我的理解是,其中包含的所有内容<%= %>都会打印到输出中,但是肯定分配给test的值必须是布尔值,那么为什么这样做有效?

对于奖励积分,有什么方法可以更改上面的属性值,使其不使用scriptlet代码?据推测,这意味着使用EL代替。

干杯,唐


阅读 363

收藏
2020-06-08

共1个答案

小编典典

test属性用于确定是否为真的所有内容是字符串“ true”(不区分大小写)。例如,以下代码将打印“ Hello world!”。

<c:if test="true">Hello world!</c:if>

<%= %>返回值中的代码返回一个布尔值,因此它将打印字符串“ true”或“ false”,这正是<c:if>标签所要查找的。

2020-06-08