【问题标题】:Error using <c:choose> in table with jsp在带有 jsp 的表中使用 <c:choose> 时出错
【发布时间】:2012-06-08 07:36:03
【问题描述】:

我正在使用 jsp 开发网络应用程序。

我想要做的是,如果变量不为空,我会显示它,但如果为空,我会在表格行中显示- 字符。

这是我目前的代码,我从here学到的

<table id="hor-minimalist-a" summary="Employee Pay Sheet">
    <caption>Riwayat Status</caption>
        <thead>
            <tr>
             <th scope="col">Status</th>
             <th scope="col">Tanggal</th>

            </tr>
        </thead>
        <tbody>
            <tr>  
             <td>Tanggal DP</td>
             <c:choose>
               <c:when test="${Transaction.tglDP}">
                <td>${Transaction.tglDP}</td>
               </c:when>
               <c:otherwise}>
                <td>-</td>
               </c:otherwise>
             </c:choose>
</tr>
</tbody>
</table>

但是当我运行网站时,当该变量不为空时,它也会显示值和字符。

我在这里缺少什么?

编辑:有关信息,Transaction.tglDP 类型是 java.util.Date

【问题讨论】:

    标签: jsp if-statement html-table


    【解决方案1】:

    你可以使用 not empty 进行空值检查,如果你想要 if else 阻塞,你也不必做多个,否则就使用 else

    <c:choose>
          <c:when test="${not empty  Transaction.tglDP}">
                <td>${Transaction.tglDP}</td>
          </c:when>
          <c:otherwise>
                <td>-</td>
          </c:otherwise>
    </c:choose>
    

    【讨论】:

    • 我试过你的建议,但显示结果还是一样,就像显示两个,不管它是否为空。
    • 请在何时或其他情况下发布更多您的代码,两者都不可能
    • 我的代码和你的一样,我应该发布什么?对不起,我不明白你的评论......
    • c:when或c:中只会执行一个选项,否则两者都无法执行,所以如果您的jsp页面中有更多代码,请发布
    • @bangandi:您的代码与 mprabhat 的代码不同。语法是&lt;c:when test="${...}"&gt;,而不是&lt;c:when ${...}&gt;
    【解决方案2】:

    我终于知道我的代码出了什么问题。因为我是 jsp 的新手,并且我上面的问题中的链接没有提到使用 jstl 库,所以我认为这样编写代码就足够了。我自己的错误。 我没有在我的库中包含 jstl.1.2.jar 并忘记放置这一行:

    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    

    还可以查看来自@mprabhat 的答案。 谢谢大家:)

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签