如何将JSFbean值传递给css计算函数?

如何将JSFbean值传递给css计算函数?,css,jsf,el,Css,Jsf,El,我在style类中使用三元运算符。我无法传递bean值来设置表的宽度 这是我的密码: <table style="#{manageBean.taskDetail.effort1 &lt; manageBean.taskDetail.effort2 ? 'width:calc((manageBean.taskDetail.effort1/manageBean.taskDetail.effort2)*100%);background-color:blue;' : 'width:10%;

我在style类中使用三元运算符。我无法传递bean值来设置表的宽度

这是我的密码:

<table style="#{manageBean.taskDetail.effort1 &lt; manageBean.taskDetail.effort2 ? 'width:calc((manageBean.taskDetail.effort1/manageBean.taskDetail.effort2)*100%);background-color:blue;' : 'width:10%;background-color:red;'}">

如果条件满足,则应根据计算显示宽度。上述计算不起作用


有什么帮助吗?

计算不起作用,因为您正在嵌套EL表达式,而这在JSF 2.2上是不可能的。因此,
calc
(css)被采用
manageBean.taskDetail.effort1
字面意思,换句话说,就像一个字符串。 您可以在JS上执行此计算,或者构建一个计算css样式的Bean方法。例如:

查看

<table style="#{dummyController.style}">
    <!-- content -->
</table>

与问题无关但仍然有用:EL支持
lt
le
gt
。。。要比较数字,不需要像
public String getStyle() {
    return number1 > number2? "width:calc((" + (number1 / number2) + ")*100%);background-color:blue;" : "width:10%;background-color:red;";
}