在我当前的页面上,我使用JSTL检查数据是否可用于我的表单。我面临的问题是“如果没有数据,我也没有看到文本字段”。我可以使用和标签来解决它,但这将需要很多if else else if all类型的代码贯穿整个页面。任何人都可以建议我更清洁地解决这个问题吗?
<c:if test="${salesData!=null}">
<c:if test="${fn:length(salesBundle.salesArea) > 0}">
<input type="text" id="sales_area" class="salesManagerStyle">
</c:if>
</c:if>
答案 0 :(得分:17)
test
可以有多个条件。
<c:if test="${salesData != null && fn:length(salesBundle.salesArea) > 0}">
<input type="text" id="sales_area" class="salesManagerStyle">
</c:if>
但您也可以使用empty
关键字进行 nullcheck和lengthcheck。
<c:if test="${not empty salesData.salesArea}">
<input type="text" id="sales_area" class="salesManagerStyle">
</c:if>
现在,这是你能得到的最好的东西。如果您需要在页面的其他位置重复使用相同的条件,那么您也可以<c:set>
保存它。
<c:set var="hasSalesData" value="${not empty salesData.salesArea}" />
...
<c:if test="${hasSalesData}">
<input type="text" id="sales_area" class="salesManagerStyle">
</c:if>
...
<c:if test="${hasSalesData}">
Foo
</c:if>
答案 1 :(得分:0)
我尝试在我的网页中尽可能少地使用逻辑
“接口层相对没有应用程序处理;窗口或网页将任务请求转发到中间层”Graig Larman,应用UML和模式第3版第575页 - 信息系统:经典的三层架构。
在持久化数据之前,还要在客户端进行控制/验证......但我想如果它是遗留的,网页是你可以触摸的唯一东西...这就是感觉