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

ros*_*ose 3 jsf icefaces

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

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

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

我提出你的建议.

Bal*_*usC 12

使用该rendered属性.它接受一个布尔表达式.向User实体添加一个方法,isAdmin()或者getRole()rendered属性拦截它.

<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>
Run Code Online (Sandbox Code Playgroud)

对于你感兴趣的情况,这里有一些更多的例子,你可以在EL中使用布尔表达式.

JSP兼容语法:

<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'}" />
Run Code Online (Sandbox Code Playgroud)

Facelets兼容的语法与一些XML敏感的 EL运算符喜欢>&改变:

<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'}" />
Run Code Online (Sandbox Code Playgroud)