为了账号安全,请及时绑定邮箱和手机立即绑定

有条件地显示JSF组件

有条件地显示JSF组件

炎炎设计 2019-06-24 16:35:35
首先,我是JavaEE新手,来自一个强大的ASP.NET开发背景。我已经通过了网络,我可能会错过这一点,但似乎没有关于如何将backbean类连接到JSF组件的简单而直接的教程。一个很好的例子是这样的,目前我正在尝试创建一个JSF页面,其中有一组链接作为菜单栏和一组表单。我计划做的是,当点击一个链接,一个特定的形式将被呈现。在ASP.NET中,我可以轻松检索元素,然后将属性设置为可显示。我想知道在JSF中是否有简单的方法(见鬼,甚至任何方式)可以做到这一点。表单已经在页面中了,当我单击特定的链接时,只需将“Render”属性设置为true即可。有条件地显示JSF组件
查看完整描述

2 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

是的,使用rendered属性。

<h:form rendered="#{some boolean condition}">

您通常将其绑定到模型上,而不是让模型获取组件并对其进行操作。

例如:

<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算子比如gtgelelt而不是>>=<=<作为尖括号<>是XML中的保留字符。另见以下相关问答:XHTML解析错误:元素的内容必须包含格式良好的字符数据或标记。.

至于您的特定用例,让我们假设链接正在传递一个参数,如下所示:

<a href="page.xhtml?form=1">link</a>

然后,您可以如下所示:

<h:form rendered="#{param.form eq '1'}">

()#{param}是引用Map表示请求参数)

另见:


查看完整回答
反对 回复 2019-06-24
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

除了上一篇文章之外,你还可以

<h:form rendered="#{!bean.boolvalue}" /><h:form rendered="#{bean.textvalue == 'value'}" />

JSF2.0


查看完整回答
反对 回复 2019-06-24
  • 2 回答
  • 0 关注
  • 483 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信