首先,我是 Java EE 的新手,拥有强大的 ASP .NET 开发背景。
我浏览过网络,我可能会错过这一点,但似乎没有关于如何将支持 bean 类连接到 JSF 组件的简单且直接的教程。
一个很好的例子是这样的,目前我正在尝试创建一个 JSF 页面,其中有一组链接作为菜单栏和一组表单。我计划做的是,当单击链接时,将呈现特定的表单。
在 ASP.NET 中,我可以轻松检索元素,然后将属性设置为可显示。我想知道是否有简单的方法(哎呀,甚至任何方法)在 JSF 中做到这一点。
表单已经在页面中,只需在单击特定链接时将“render”属性设置为 true 即可。
是的,使用rendered
属性。
<h:form rendered="#{some boolean condition}">
您通常将其绑定到模型,而不是让模型抓取组件并操纵它。
E.g.
<h:form rendered="#{bean.booleanValue}" />
<h:form rendered="#{bean.intValue gt 10}" />
<h:form rendered="#{bean.objectValue eq null}" />
<h:form rendered="#{bean.stringValue ne 'someValue'}" />
<h:form rendered="#{not empty bean.collectionValue}" />
<h:form rendered="#{not bean.booleanValue and bean.intValue ne 0}" />
<h:form rendered="#{bean.enumValue eq 'ONE' or bean.enumValue eq 'TWO'}" />
注意以下的重要性基于关键字的 EL 运算符例如gt
, ge
, le
and lt
代替>
, >=
, <=
and <
作为尖括号<
and >
是 XML 中的保留字符。另请参阅此相关问答:解析 XHTML 时出错:元素的内容必须由格式正确的字符数据或标记组成.
至于您的具体用例,我们假设链接正在传递如下所示的参数:
<a href="page.xhtml?form=1">link</a>
然后您可以显示如下表格:
<h:form rendered="#{param.form eq '1'}">
(the #{param}
是一个隐式 EL 对象,引用Map
代表请求参数)
也可以看看:
- Jakarta EE 教程 - 第 9 章. 表达式语言
- 如果列表不为 null 并且 size() > 0,如何显示 JSF 组件
- 当我想要 ajax 更新它时,为什么需要将 render="#{some}" 的组件嵌套在另一个组件中?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)