【问题标题】:JSF rendered doesn't workJSF 渲染不起作用
【发布时间】:2014-11-15 14:41:36
【问题描述】:

我正在使用 JSF 开发应用程序。我希望当用户登录页面时,显示一条消息说“你好”。每次用户使用其凭据正确登录时,用户的 id 都存储在 currentUser 属性中。

如果用户没有登录并访问我在浏览器中写入 URL(没有用户 ID)的页面,则显示一条消息“您无权访问此页面”。我究竟做错了什么? 这是显示消息的代码

<h:form rendered="#{usersManagedBean.currentUser ne null}">
     <h:outputText value=" hello " />
 </h:form>
 <h:form rendered="#{usersManagedBean.currentUser eq null}">
     <h:outputText value="You have no rigths to access this page" />
</h:form>

【问题讨论】:

  • #{not empty usersManagedBean.currentUser} 对应于not null!=''。尝试这样做,并检查 usersManagedBean.currentUser 是否根据不同用户的操作正确设置在关联的支持 bean 中。
  • 渲染了哪些输出?

标签: jsf


【解决方案1】:

改为使用空运算符

<h:form rendered="#{not empty usersManagedBean.currentUser}">
    <h:outputText value=" hello " />
</h:form>
<h:form rendered="#{empty usersManagedBean.currentUser}">
    <h:outputText value="You have no rigths to access this page" />
</h:form>

EL 2.2 specification 中发现空运算符

1.10 空运算符 - 空 A 空运算符是前缀运算符,可用于确定值是空还是空。 评估空 A 如果 A 为 null,则返回 true 否则,如果 A 是空字符串,则返回 true 否则,如果 A 为空数组,则返回 true 否则,如果 A 是空 Map,则返回 true 否则,如果 A 是一个空 Collection,则返回 true 否则返回false

【讨论】:

    猜你喜欢
    • 2014-01-17
    • 1970-01-01
    • 2011-08-19
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 2015-01-09
    • 2011-12-08
    相关资源
    最近更新 更多