加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何使用JSF和Facelets实现一些if-then逻辑?

发布时间:2020-12-15 05:04:56 所属栏目:Java 来源:网络整理
导读:我有一个具有现场状态的bean.根据状态值,应该应用不同的css类来呈现它. 所以,我需要这样的东西(离真实的伪代码很远): if status == "Approved" cssClass = "green"if status == "Rejected" cssClass = "red"span class="cssClass"Some info/span 我试图应用
我有一个具有现场状态的bean.根据状态值,应该应用不同的css类来呈现它.

所以,我需要这样的东西(离真实的伪代码很远):

if status == "Approved"
     cssClass = "green"
if status == "Rejected"
     cssClass = "red"
<span class="cssClass">Some info</span>

我试图应用jstl,但我不能使它与facelets和jsf(但我听说它是??可能的,也许是它的真相).这是代码:

<c:choose>
    <c:when test="#{report.approved}">
        <c:set var="statusClass" value="approved"/>
    </c:when>
    <c:when test="#{report.rejected}">
        <c:set var="statusClass" value="rejected"/>
    </c:when>
    <c:when test="#{report.inProgress}">
        <c:set var="statusClass" value="progress"/>
    </c:when>
    <c:when test="#{report.pendingHR}">
        <c:set var="statusClass" value="pending"/>
    </c:when>
</c:choose>
<span class="status ${statusClass}">#{report.formattedStatus}</span>

如何使用JSF / Facelets?

解决方法

给双方(模型和视图)带来好处,而不是使用枚举而不是四个独立的布尔值,这可能毕竟只会导致维护麻烦.

public enum Status {
    APPROVED,REJECTED,PROGRESS,PENDING;
}

它不仅在Java方面更容易和更清晰,而且你也可以在EL中打印它.

<span class="#{bean.status}" />

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读