如何从bean设置JSF组件的styleclass属性?

时间:2013-01-20 06:42:28

标签: jsf-2 icefaces-3

我正在使用Icefaces 3.2。我想知道如何从backing bean方法重置组件的styleClass属性,例如textarea。

USECASE:我有一个ace:textAreaEntry,它在辅助bean中有一个验证器方法。在这个支持bean中,我正在做一些验证。如果验证失败,我想要一个特定的CSS类应用于组件。所以我想重置styleclass属性的值。

1 个答案:

答案 0 :(得分:2)

您可以有条件地设置styleClass,就像这样

<ace:textAreaEntry 
    styleClass="#{facesContext.validationFailed?'failedClass':'validClass'}"/>

或仅指定失败类,否则不指定任何类

<ace:textAreaEntry 
    styleClass="#{facesContext.validationFailed?'failedClass':''}"/>

如果您手动设置要在页面中显示的消息,则可以检查facesContext.messageList是否为空,如此

<ace:textAreaEntry 
    styleClass="#{(not empty facesContext.messageList)?'filedClass':'validClass'}"/>

如果要测试某些特定的内部逻辑验证,可以检查一些布尔值,例如

<ace:textAreaEntry 
    styleClass="#{(myBean.someComponentFailed)?'filedClass':'validClass'}"/>

其中someComponentFailed是一些在验证失败时设置为true / false的属性