“Composite Component”是JSF 2.x / Facelets特定术语,用于可重用的UI组件,使用纯XML而不是Java声明。复合组件XML声明标记位于命名空间`http:// xmlns.jcp.org / jsf / composite`下。
我已成功为特定类型的数据创建了自定义 Web 表单组件。数据来自各个部分,因此我需要创建额外但现有的组件类型,这些类型将是子
在 ui 内部处理组件时遇到一些困难:重复迭代作为复合组件属性的集合,如下所示: ...
评估复合组件中是否设置了 MethodExpression 属性(获取 PropertyNotFoundException)
我有一个带有 MethodExpression 属性changeListener 的 UI 组件: 我有一个带有 MethodExpression 属性的 UI 组件 changeListener: <composite:interface> <composite:attribute name="changeListener" required="false" method-signature="void actionListener(javax.faces.event.ActionEvent)" /> .. </composite:interface> <composite:implementation> <p:remoteCommand name="ajaxOnChange" update="#{cc.attrs.onChangeUpdate}" oncomplete="#{cc.attrs.onchange}" actionListener="#{cc.attrs.changeListener}" /> .. </composite:implementation> 这个 changeListener 属性是一个可选方法表达式,用作 remoteCommand 中的 actionListener,我想仅在设置了 <p:remoteCommand> 属性时才渲染 changeListener。 我尝试了多种方法来检查属性是否设置,特别是: <c:if test="#{! empty cc.attrs.changeListener}"> 和 <p:remoteCommand rendered="#{cc.attrs.changeListener != null}" /> 但是我得到了 javax.el.PropertyNotFoundException,因为它尝试将属性评估为属性。 如何判断是否设置了可选方法属性? 谢谢 您已经在正确的方向上<c:if>了。 rendered 永远不会起作用。您只需要检查 EL 表达式 是否已设置,而不是实际将整个 EL 表达式作为值表达式进行计算并检查其结果是否不为空,如果 EL 表达式表示方法表达式,这当然会失败。 <c:if test="#{not empty cc.getValueExpression('changeListener')}"> ... </c:if> 然而,这个解决方案有点可怕:您在这里将方法表达式作为值表达式。然而,只要您没有实际评估所包含的 EL 表达式(就像您最初的 #{cc.attrs.changeListener} 尝试在幕后所做的那样),那么就没有什么问题。没有其他干净的方法,因为 JSF API 中没有像 UIComponent#getMethodExpression() 这样的东西。
我面临着渲染通过嵌套复合组件中的构面传递的内容的问题。尽管分面被识别为非空,但这些分面内的内容不会出现在...
我正在开发一个 JSF 项目,我需要将 List 传递给复合组件。但是,当我尝试在 cc:attribute 的 type 属性中指定此泛型类型时遇到问题......
在 JSF 中,有没有一种方法可以在使用自定义组件时以编程方式将组件添加到树中?
我们有一个自定义组件库,它基本上只是用 Bootstrap 类(基本上是现在已经过时的 BootFaces 项目的继承者)装饰库存的 Faces 组件。 我们正在努力做的...
已编辑的问题...您好,我想从后备bean加载我的复合组件的.xhtml文件,并将其动态添加到页面中。 .xhtml文件的名称来自一个变量。例如....
我有包含自身的DTO(它是嵌套的)。公共类MyDTO {private SomeData someData;私有MyDTO嵌套; //创建和设置}我创建了复合组件,它是...
我需要在JSF 2中以编程方式创建复合组件。经过几天的搜索和实验,我弄清楚了该方法(受java.net上的Lexi启发:/ ** *该方法将附加...
FacesConverter forClass不适用于Composite Componet
我有一个简单的复合组件,它必须渲染一个inputText。当一个put值并按下commandButton后跟随异常就是throw:java.lang.IllegalArgumentException:无法转换1 ...
我正在用Mojarra JSF编写自定义表复合组件。我也试图将该组合绑定到支持组件。目的是能够指定表格中的元素数量......
我最近开始在Facelets中使用JSF 2.0,并对已知存在的新复合组件感到困惑 和Facelets 1.x提供的其他模板技术。是什么 ...
我有一个复合组件,它将特定的对象类型作为其value属性。它看起来像这样:
为什么复合组件中的构面内的commandLink会出现错误?
当我创建一个带有facet的复合组件并在该facet中放置一个命令链接时,我收到一条错误消息:此链接被禁用,因为它没有嵌套在JSF表单中。一个commandButton ......
JSF拒绝处理深层嵌套的复合组件。不,真的:“JSF1098:[...]这浪费了处理器时间[...]”
前提非常简单:我有一个依赖嵌套复合组件(CC)进行渲染的页面布局,即一个JSF页面引用CC,它本身引用另一个CC,...