有条件地在 JSF 组件标签中设置一个属性
Posted
技术标签:
【中文标题】有条件地在 JSF 组件标签中设置一个属性【英文标题】:Conditionally set an attribute within JSF component tag 【发布时间】:2012-04-27 22:55:53 【问题描述】:我需要根据来自支持 bean 的布尔值。我该怎么做呢?
如果布尔值为真,则应在组件标签中添加/指定属性,或者如果布尔值为假,则不应为该组件设置该属性。
【问题讨论】:
你为什么需要那个?能给我举个例子吗 ?正如@JMelnik 所说,您唯一能做的就是在服务器端添加。我只是想知道为什么有人需要这个。对我来说唯一合理的事情是有条件地设置列是否应该有排序/过滤器。 【参考方案1】:您可以:
如果值为布尔值 - 在 bean 中定义所需的默认值并将其分配给 JSF 组件的属性。例如rendered="#bean.componentRendered"
如果属性有更多选项(不是布尔值) - 将您的组件绑定到支持 bean 并在服务器端初始化它和所需的属性。例如binding="#bean.component"
我不确定是否有可能实现我在第二个选项中提到的。如果不可能,请编辑我的答案。
【讨论】:
【参考方案2】:虽然你的问题对我来说不是很清楚。但我还是会尝试回答这个问题
1)如果您必须在文本字段中填充一个值(假设),那么您可以在 bean 类的构造函数中设置该值,在构造函数中您可以检查布尔值并相应地设置该值。
2)如果不想显示该字段,则可以根据要求将渲染字段设置为false。
请详细说明,以便我们为您提供更多帮助
【讨论】:
以上是关于有条件地在 JSF 组件标签中设置一个属性的主要内容,如果未能解决你的问题,请参考以下文章
基于 build ARG 有条件地在 Dockerfile 中设置 ENV vars
我应该使用带有 render 属性的 ui:fragment 来有条件地在带有 JSF 2.2 的 Facelets 中呈现 HTML 标记吗?