有条件地在 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 标记吗?

在 JSF 中设置/获取会话属性

如何使用angular4在组件标签中设置粗体和斜体属性

关于在JS中设置标签属性

如果在 Element 中设置,WPF 触发器将不会设置属性