问题描述
||
我需要根据请求属性的值在页面加载时隐藏字段。我不想使用“隐藏”字段,因为我想再次显示它。我不想用javascript做到这一点。如何使用jsp标签完成此操作?
解决方法
如果条件为真,则设置一个条件,其中显示被阻止。否则,如果条件为假,则将显示设置为无。
<c:set var=\"inputDisplay\" value=\"1\" /> <!-- This same as your request attribute -->
<c:choose>
<c:when test=\"${inputDisplay == 1}\">
<input type=\"text\" />
</c:when>
<c:otherwise>
<input type=\"text\" style=\"display:none;\" />
</c:otherwise>
</c:choose>
,在EL中使用条件运算符。
<div class=\"${hide ? \'hide\' : \'show\'}\">
其中“ 2”是求值为“ 3”的请求属性。如果计算结果为true
,则将打印类名\"hide\"
,否则将打印类名\"show\"
。
当然,还要在样式表中定义这些类。
.hide { display: none; }
.show { display: block; }
这里不需要JSTL标签。
或者,如果出于某些显而易见的原因而不想使用CSS类定义,则可以
<div style=\"display:${hide ? \'none\' : \'block\'}\">
,如果requestAttribute
评估为true
具有相反的效果,则下面的代码仅显示标记之间的代码,请改用${not requestAttribute}
。
<c:if test=\"${requestAttribute}\">
//Code here
</c:if>