如何在jsf / icefaces中启用/禁用组件?

时间:2010-08-12 09:28:04

标签: jsf icefaces

我正在寻找如何根据用户登录启用和禁用icefaces组件? 例如:

如果以管理员身份登录我需要启用更多组件并以用户身份登录,禁用一些组件以及在一个页面中添加一些其他组件?如何在jsf / icefaces中执行此功能?

这两个在一个页面中启用和禁用。

我提出你的建议。

2 个答案:

答案 0 :(得分:12)

使用rendered属性。它接受一个布尔表达式。向[{1}}实体添加方法,例如UserisAdmin(),并让getRole()属性拦截。

rendered

对于你感兴趣的案例,这里有一些例子,你可以在EL中使用布尔表达式。

与JSP兼容的语法:

<h:someComponent rendered="#{user.admin}">
    Will be displayed when user.isAdmin() returns true.
</h:someComponent>
<h:someComponent rendered="#{user.role != 'ADMIN'}">
    Will be displayed when user.getRole() (String or enum) does not equal ADMIN.
</h:someComponent>

<h:someComponent rendered="#{bean.booleanValue}" /> <h:someComponent rendered="#{bean.intValue > 10}" /> <h:someComponent rendered="#{bean.objectValue == null}" /> <h:someComponent rendered="#{bean.stringValue != 'someValue'}" /> <h:someComponent rendered="#{!empty bean.collectionValue}" /> <h:someComponent rendered="#{!bean.booleanValue && bean.intValue != 0}" /> <h:someComponent rendered="#{bean.enumValue == 'ONE' || bean.enumValue == 'TWO'}" /> >& EL运算符相关的Facelets兼容语法已更改:

<h:someComponent rendered="#{bean.booleanValue}" />
<h:someComponent rendered="#{bean.intValue gt 10}" />
<h:someComponent rendered="#{bean.objectValue eq null}" />
<h:someComponent rendered="#{bean.stringValue ne 'someValue'}" />
<h:someComponent rendered="#{not empty bean.collectionValue}" />
<h:someComponent rendered="#{not bean.booleanValue and bean.intValue ne 0}" />
<h:someComponent rendered="#{bean.enumValue eq 'ONE' or bean.enumValue eq 'TWO'}" />

答案 1 :(得分:1)

在ICEfaces中,已禁用属性的控件使用:

<ice:inputText disabled="[true/false]"/>

示例

我在我的代码中使用了这个:

<ice:inputText disabled="#{ABMUsuario.accion!='3'}"/>