You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSF使用BootsFaces时如何在dataTableColumn按条件渲染带样式状态

实现方案

你可以将自闭合的<b:dataTableColumn>改为嵌套内容的写法,结合JSTL条件判断渲染不同样式的按钮,具体实现如下:

前置准备

确认你的页面已经引入JSTL核心标签库:

  • Facelets(XHTML)页面需在根标签上添加命名空间:xmlns:c="http://java.sun.com/jsp/jstl/core"
  • JSP页面需在顶部引入标签库:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

代码替换

将你原有代码中的<b:dataTableColumn value="#{uapp.type}" />替换为以下内容:

<b:dataTableColumn label="Type">
    <c:choose>
        <!-- type=0 展示pending 黄色警告样式 -->
        <c:when test="#{uapp.type == 0}">
            <b:button value="pending" look="warning" size="xs" disabled="true" />
        </c:when>
        <!-- type=1 展示accepted 绿色成功样式 -->
        <c:when test="#{uapp.type == 1}">
            <b:button value="accepted" look="success" size="xs" disabled="true" />
        </c:when>
        <!-- type=2 展示rejected 红色错误样式 -->
        <c:when test="#{uapp.type == 2}">
            <b:button value="rejected" look="danger" size="xs" disabled="true" />
        </c:when>
        <!-- type=3 展示completed 蓝色主题样式 -->
        <c:when test="#{uapp.type == 3}">
            <b:button value="completed" look="primary" size="xs" disabled="true" />
        </c:when>
    </c:choose>
</b:dataTableColumn>

配置说明

  • disabled="true":设置按钮不可点击,仅作为状态展示使用
  • size="xs":设置按钮为超小尺寸,适配表格的行高,不会撑高单元格
  • look属性:对应Bootstrap的按钮主题色,你可以根据业务需求自行调整颜色搭配
    如果不需要按钮形态,想要更轻量化的标签样式,也可以将<b:button>替换为<b:badge>组件,调整对应的look属性即可实现同等的颜色区分效果。

内容的提问来源于stack exchange,提问作者andreiw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 01:36:09