问题标签 [rendered-attribute]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
25979 浏览

java - 如何在 jsf 渲染属性中指定来自 2 个不同 bean 的条件?

我想按照以下方式做一些事情,但是当我像这样使用它时,我收到一个解析错误,告诉我一个实体需要直接跟随“&”字符:

如何渲染以检查 2 个不同 bean 的条件?

0 投票
2 回答
1956 浏览

jsf - JSF 内部数据表不尊重外部表的呈现条件

我遇到了 JSF 的问题。我已经把问题抽象出来了,我希望有人能帮助我理解我正在做的事情是如何失败的。我正在遍历项目列表。这些项目实际上是子类 TypeA 和 TypeB 的实例。对于 A 类,我要显示选项,对于 BI 类,我要显示需求。第一次渲染页面时,这工作正常。但是,当我发回页面以执行某些操作时,出现错误:

我对 JSF 生命周期的把握非常粗略。在这一点上,我知道 ApplyRequestValues 阶段中有一个错误,这是非常早的,因此之前的状态被恢复并且没有任何变化。

我不明白的是,为了满足渲染“item.typeA”的条件,该对象必须是 TypeA 的实例。但是在这里,看起来该对象通过了条件,即使它是 TypeB 的实例。就像在评估外部(outerItems)之前评估内部数据表(InnerItems)一样。我的工作假设是,我只是不了解实际评估渲染属性的方式/时间。

0 投票
1 回答
2638 浏览

jsp - 如何检查 JSF UIComponent 在 jsp 文件中是否有效?

在 jsp 文件中,有没有办法在该页面上找到一个组件并检查该组件是否有效。

假设我有一个输入字段和一个带有复杂 html 的 panelGroup,如果输入字段上的验证失败,则应该显示该面板组。我真正在寻找的是用于 panelGroup 上的渲染属性的 EL 表达式。

我尝试使用自定义验证器函数,在这里将 panelGroups 呈现的值设置为 true。但随后它在必填字段上失败,因为当该字段为空时,自定义验证器函数从未运行。

现在我已经完全避免了常规验证,并使用一些相当丑陋的代码来验证提交时的所有内容。然后将结果存储在许多实例布尔值中,用于在 panelGroups 中呈现。

任何帮助深表感谢

0 投票
1 回答
1926 浏览

java - 具有渲染属性未通过验证的 jsf 组件

我有几个具有渲染属性的面板网格,在下拉列表的值更改事件中,我使其中一个面板网格可见,这很好用。但是在显示面板后,附加到面板网格内组件的所有转换和验证都会失败。

即使组件是单一的并且在网格之外,它也无法通过验证。

我在渲染属性上遗漏了什么吗?JSF 生命周期中是否发生了一些事情。

任何帮助都会非常有帮助......

提前致谢

我正在使用 jsf 2.0 mojarra 实现。

0 投票
1 回答
2094 浏览

jsf - Facelet 自定义组件 - 阻止渲染

读完这个答案后,我仍然很难过。我同意应该避免 JSTL,并理解它的评估是如何在错误的阶段发生的。但是,根据 facelets 开发站点上的文档,标签似乎<ui:fragment>只支持两个属性,id并且binding. 所以,即使有一些实现支持rendered,你似乎也很想利用它。然而,另一个建议是使用<h:panelGroup>,它会在响应中插入一个<div>元素,这可能会导致不良副作用(例如将您的内容从内联更改为块)。有谁知道解决这个问题的方法?特别是,我正在尝试以下操作:

这基本上是一个列表框,用于选择具有名称和描述的元素,选择后将允许用户编辑它们。我可以<ice:panelGroup>在块周围放置一个,并使用它的渲染属性,但同样,注入额外的 div 可能会产生副作用。有什么办法可以使这项工作?

此外,可能值得一提的是,我正在使用与这个 facelet-taglib 配对的上述自定义组件:

为了让我在我的 jsf xhtml 中使用它:

0 投票
1 回答
1772 浏览

java - 虽然 render="false",但 ah:dataTable 的内容总是被评估

我遇到了 JSF 2.0 的 HtmlDataTable 的问题。在我的网页上,我有 ah:dataTable 和其他一些内容,这些内容只有在用户登录时才会呈现。

HtmlDataTable 的内容是从数据库中加载的。尽管在用户未登录时不会呈现 h:dataTable,但仍会评估内容。

这是网页的代码:

在 getAllXxx() 方法中,我正在记录该方法的调用。但是,如果 h:dataTable(和所有其他内容)未呈现,仍会调用 getAllXxx() 方法。

我尝试使用 c:if 而不是 h:panelGroup。那会起作用,但是我在登录过程中遇到问题,所以这不是合适的解决方案。

有谁知道如何解决这一问题?提前致谢。

0 投票
2 回答
1378 浏览

jsf - JSF:由渲染属性引起的空白

如何摆脱未通过渲染属性渲染的组件的空白空间?

我想在 dataTable 中显示对象列表并按它们拥有的属性对它们进行排序。我喜欢这样:查看纯副本到剪贴板打印?

由于渲染的东西,它将仅每行显示一个项目。我怎样才能避免这种情况?我在其他场合也偶然发现了这个......

谢谢!

0 投票
3 回答
3573 浏览

javascript - JSF javascript布尔值呈现

基于 javascript 标志切换 JSF 组件呈现的最简单方法是什么?我想根据用户是否启用 HTML5 来显示某些内容……例如地理位置、本地日期选择器等。

感谢:D

0 投票
1 回答
6435 浏览

jsf-2 - JSF2 复合组件 - 方法属性存在的条件

我有一个简单的复合组件,带有一个使用richfaces a4j:ajax 组件实现的可选ajax 侦听器。

这是接口定义:

以下代码使用两个具有相反渲染条件的重复块可以正常工作:

但我想避免重复,因为我的组件要复杂得多......

在 a4j:ajax 上使用渲染条件是我的第一个想法:

但它不起作用,而且错误非常模糊:

我尝试使用 ac:if 处理程序,因为树不需要同时具有两个组件:

然后得到另一个错误(使用 ajaxListener="#{itemList.updateValue}"):

如果属性是返回值的 EL,我可以测试默认值。我还可以添加一个布尔属性来判断是否设置了侦听器......或者在 componentType bean 上添加一个默认方法,什么都不做......但这并不漂亮......

如何在不访问属性值或方法绑定的情况下测试是否设置了属性?

提前感谢您的任何想法,

Rgds,

调频

0 投票
1 回答
1413 浏览

jsf - JSF 生命周期问题:在应用请求属性之前构建组件树

我有一个 JSF 2.0 facelets 视图,其中包含一个搜索表单、一个用于显示结果的 ui:repeat 和一个寻呼机。它由请求 bean 支持。表单帖子由当前页面和搜索条件组成。寻呼机显示下一页和上一页链接,具体取决于数据集中的位置,以及来自表单的搜索条件的查询结果数量。所以组件树依赖于请求属性。例如,我在这样的下一页链接上使用渲染属性

当用户单击此链接时,POST 请求包含当前页面和搜索条件。问题是,组件树已经在 RESTORE_VIEW 中构建。此时,由于尚未应用请求属性,我无法判断用户当前在哪个页面上,或者数据集中有多少条记录,因为我没有搜索条件。因此 listBean.hasNextPage 在此阶段的评估结果为 false。这似乎导致 CommandLink 从组件树中消失。在 APPLY_REQUEST_VALUES 之后,我可以构建我的计数查询。有了这些信息和当前页面,我可以计算 listBean.hasNextPage。但是,它似乎直到 RENDER_RESPONSE 才再次得到评估。该操作根本不会在 INVOKE_APPLICATION 中调用。也没有错误,这很烦人。

它在用 c:if 替换渲染时起作用。c:if 只在 RENDER_RESPONSE 中评估一次,默认情况下组件在第一阶段的树中。我真的不喜欢它,因为在(罕见的,承认的)情况下,数据集计数发生了变化,因此实际上没有下一页,它仍然会调用该操作并且用户将处于非法页面中。我也知道在 Facelets 中使用 JSTL 标记通常是不建议的。我不知道为什么。

是否有任何技巧可以将评估延迟到 APPLY_REQUEST_VALUES 之后?必须有一种方法可以在依赖于当前请求的属性上使用此属性。仅供参考,这是 Liferay 上带有 JBoss portlet 桥的 portlet 2.0 应用程序,但我想这是一个通用的 JSF 问题。

提前感谢您的任何答案。我希望我只是忽略了一些东西,我还在学习 JSF——我不会那么难写一个寻呼机,对吧:-)