如何在JSTL <c:out>标记中检查null?

时间:2018-07-05 06:58:19

标签: jsp jstl

我正在寻找一种可能性,可以在表单元格中插入变量,或者如果该值原来为空,则在单元格中编写另一种文本,但使用不同的样式。我该如何实现?

这显然不起作用:

<c:out value="${data.onlineData.state}" default="<span class="customercare-null"><spring:theme code="productOffline.null" /></span>" escapeXml="false" />

对于我要实现的目标,这是正确的语法吗?

<c:out value="${data.onlineData.state}">
    <span class="customercare-null"><spring:theme code="productOffline.null" /></span>
</c:out>

我知道c:choose可以解决这个问题,但我想知道上面提供的代码是否合法

先谢谢您

1 个答案:

答案 0 :(得分:2)

使用<c:if>检查空值

<c:if test="${empty data.onlineData.state}">
    <span class="customercare-null"><spring:theme code="productOffline.null" /></span>
</c:if>
<c:if test="${not empty data.onlineData.state}">
   <c:out value="${data.onlineData.state}" />
</c:if>

或使用<c:choose>

<c:choose>
    <c:when test="${empty data.onlineData.state}">
        <span class="customercare-null"><spring:theme code="productOffline.null" /></span>
    </c:when>
    <c:otherwise>
       <c:out value="${data.onlineData.state}" />
    </c:otherwise>
</c:choose>

  

对于我要实现的目标,这是正确的语法吗?

如果您使用

<c:out value="${data.onlineData.state}">
    <span class="customercare-null"><spring:theme code="productOffline.null" /></span>
</c:out>

然后<span class="customercare-null"><spring:theme code="productOffline.null" /></span>将作为文本显示。 HTML组件将无法呈现。