首先,我是 Java EE 的新手,拥有强大的 ASP .NET 开发背景。 我浏览过网络,我可能会错过这一点,但似乎没有关于如何将支持 bean 类连接到 JSF 组件的简单且直接的教程。
一个很好的例子是这样的,目前我正在尝试创建一个 JSF 页面,其中有一组链接作为菜单栏和一组表单。我计划做的是,当单击链接时,将呈现特定的表单。
在 ASP.NET 中,我可以轻松检索元素,然后将属性设置为可显示。我想知道是否有简单的方法(哎呀,甚至任何方法)在 JSF 中执行此操作。
表单已经在页面中,只需在单击特定链接时将“render”属性设置为 true 即可。
最佳答案
是的,使用 rendered
属性。
<h:form rendered="#{some boolean condition}">
您通常将其绑定(bind)到模型,而不是让模型抓取组件并操纵它。
例如
<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'}" />
注意 keyword based EL operators 的重要性如gt
, ge
, le
和lt
而不是>
, >=
, <=
和<
作为尖括号<
和>
是 XML 中的保留字符。另请参阅相关问答:Error parsing XHTML: The content of elements must consist of well-formed character data or markup .
对于您的具体用例,我们假设链接传递如下参数:
<a href="page.xhtml?form=1">link</a>
然后您可以显示如下形式:
<h:form rendered="#{param.form eq '1'}">
(#{param}
是一个隐式 EL 对象,引用代表请求参数的 Map
)
另请参阅:
关于jsf - 有条件地显示 JSF 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4870462/