我第一次在我的Web项目中使用primefaces,并使用rowStyleClass这样动态地对数据表行进行着色
rowStyleClass="#{alar.severity eq 'Major' ? 'major' : null}"
但是,有什么方法可以检查rowStyleClass中的多个条件吗?
我要检查严重程度,主要,次要和正常。如何执行多个条件?

最佳答案

考虑到您的情况,通常,如果您将小写的严重性用作行类,并且您不想排除任何严重性,则可以使用以下技巧:

rowStyleClass="#{not empty alar.severity ? alar.severity.toLowerCase() : null}"


另一个更具扩展性和可读性的解决方案是定义一个以alar为参数并返回样式类的bean方法:

public String alarStyleClass(Alar alar) {
    if(alar.severity.equals("Major")) return "major";
    if(alar.severity.equals("Minor")) return "minor";
    if(alar.severity.equals("Normal")) return "normal";
    return null;
}


对于rowStyleClass

rowStyleClass="#{bean.alarStyleClass(alar)}"


我想到的最后一个可能的解决方案是直接在rowStyleClass属性中进行所有检查:

rowStyleClass="#{alar.severity eq 'Major' ? 'major' :
                 alar.severity eq 'Minor' ? 'minor' :
                 alar.severity eq 'Normal' ? 'normal' :
                 null}"

10-04 17:51