问题标签 [composite-component]

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 投票
1 回答
15541 浏览

jsf - 如何使用 JSF 2.0 复合组件实现动态列表?

我问了这个问题,虽然答案直接满足了我的需求,但我觉得必须有一个更简单的解决方案来解决这个特定问题。

我想要一个接受项目列表的复合组件(商定的项目类型,以便成员可以在复合组件中自由使用)

CC(复合组件)显示项目列表并允许添加和减去项目。

我想以最简单和最有效的方式做到这一点。

为了说明问题,举个例子:

在此处输入图像描述

定义应该相当简单(当然,除非它不是:-)):

对象的最抽象形式Field是:

我想就是这样。您将如何以简单的方式实现这一点?

谢谢!

0 投票
1 回答
5552 浏览

javascript - 从复合组件执行 JavaScript

美好的一天,我有一个问题困扰了我几个小时。这是非常直接的。我尝试在呈现复合组件时调用/执行 JavaScript。就像您可以使用 html 标记正文和 onload 执行的操作一样。

如何引用要执行的内联 JavaScript?

我试过 this.init() , #{cc.clientId}.init() 。但是在上下文中找不到JS。如果我从 JSF/ajax 组件执行它,只需“init();”就可以正常工作

0 投票
3 回答
4760 浏览

jsf - JSF2 复合组件:是 #{cc.childCount} 和互斥?

我只是不明白:如果我希望我的复合组件插入子组件,我会使用 <composite:insertChildren/>但在这种情况下#{cc.childCount}总是返回0。另一方面,如果我不使用 <composite:insertChildren/>,我总是会得到正确childCount的,而不会渲染孩子。为什么会这样?

我想要在我的组件中做的就是在没有子级的情况下呈现一些“默认”面板,并且在其他情况下不呈现它 - 行为类似于<ui:insert name="param_name">default value</ui:insert>. 所以我需要两个似乎不能一起工作的 insertChildren 和 childCount 。

这是代码:

如果我使用下面的实现,我会2按预期呈现

使用时insertChildren,我会渲染两个孩子0,最后:

而我的目标是:

有什么想法/解决方法吗?

0 投票
1 回答
1647 浏览

jsf - 如何使用自定义/复合组件执行此操作?

我试图问一个更具体的问题,但我认为我可能过于具体,所以我会缩小以获得更好的建议。我正在尝试创建一个将接受两个属性的复合/自定义组件

  1. 字符串列表 --> 字段名称
  2. <String, Value>--> 字段组列表的列表<fieldName, fieldValue>

示例值:

  1. [Street, Country, State, ZipCode]
  2. [{(Street, Greenfield), (Country, USA)}, {(Country, Canada), (ZipCode, 3333)}]

该组件将根据以下属性呈现此内容:

在此处输入图像描述

我在使用此组件时遇到困难的原因是,我不知道为最初未输入但用户可以通过组件添加的字段维护占位符的正确方法是什么。

在上面的示例中,对于第一组,这些将是StateZipCode

我的想法是创建一个包含所有字段的虚拟对象,并在提交时将虚拟对象的值复制到属性中传递的数据结构中。我面临的问题是不知道如何在创建组件时读取值并在提交时更改通过属性传递的列表。

我将很快添加示例代码(尽管这对于回答这个问题不应该是至关重要的)

谢谢你读到这里!!:-)

我的代码(同样,不是回答问题所必需的,但可能有助于理解我的挑战)

复合组件代码:

组件bean java代码:

0 投票
2 回答
30783 浏览

java - JSF 2 - 如何将 Ajax 侦听器方法添加到复合组件接口?

我有一个 JSF 2 复合组件,它采用了一些 Ajax 行为。我想在我的复合组件内listener的标记中添加一个方法,但该方法应该在.<f:ajax>listener<composite:attribute><composite:interface>

我的复合组件中的<f:ajax>标签目前被硬编码为这样的侦听器:

bean 上的侦听器方法具有以下签名:

我希望复合组件是这样的,以便页面可以提供自己的事件方法,但我无法确定接口的正确语法。

我怎样才能做到这一点?

更新解决方案:

我采用了 BalusC 建议的方法,效果很好。相关的片段是:

复合组件中的接口声明

我的复合组件中使用的 Ajax 标记

我在页面中使用复合组件的位置

还有我的backing bean上的方法

0 投票
2 回答
3950 浏览

jsf - 每次使用时在复合组件中获取相同的“componentType”实例

嗨有这个奇怪的问题,我正在使用Composite Component我编写的一个,我从以前使用 CC 的支持 bean(componentTypebean)中获取值

我不知道如何比仅显示代码更好地描述这一点。我会尽量简明扼要地删掉多余的部分:这是Composite Component定义:

CC bean 定义:

以及使用代码:

id 的文本controlMsg显示正确的值,#{group.values}而 id 组件内的控制输出inner_control_component显示之前使用的值。

值第一次是正确的...

我猜这是使用 CC bean 的根本错误,否则可能是一个错误MyFaces 2.1(我正在使用)

0 投票
2 回答
804 浏览

c++ - 擦除期间 std 容器迭代器失效

可能的重复:
向量擦除迭代
器在调用擦除()后出现 std::map::iterator 问题


我对我拥有的一段代码感到担忧。我有组件和一个存储组件的对象。问题是在更新期间组件可以告诉从对象中删除组件。但它是从另一个函数调用的。

假设我有很多组件——健康、活着、图形、物理、输入等。

我尝试了这样的事情(使用一些测试组件)并且在更新期间没有错误。但我真的很担心。它可以在将来弹出我的错误吗?如果是,如何解决?

提前致谢,
加西姆

0 投票
1 回答
696 浏览

jsf - JSF 复合按钮重新初始化视图范围的托管 bean

只要在我的 .xhtml 中包含一个封装了 commandButton 的组合,无论使用哪个 commandButton,都会重新初始化 viewscoped bean。我的合成错了吗?请让我知道,因为我真的很想为我的按钮使用复合材料。
简单的测试用例:

}

无论单击哪个按钮(第 2 列或第 3 列),都会一遍又一遍地调用 postConstruct 方法

一旦最后一列(标题actie...2)被删除,那么@PostConstruct 只被调用一次,正如预期的那样。

为什么我的复合力的存在会重新初始化 viewscoped bean?我的复合有什么问题,它可以工作,但它不应该重新初始化托管 bean:

0 投票
1 回答
2642 浏览

jsf - JSF 2 复合组件渲染问题

我的复合组件 (cc) 创建了一个 inputText-Field。重要的部分是,它的呈现取决于模型属性“可见”。模型通过参数“名称”提供给组件。

在视图中,我有一个具有 2 个单元格/行的 panelGrid:第一行有一个标签和我的 cc,第二个并不重要。该标签以与我的 cc 相同的模型属性呈现自己。

结果(和问题)如下,如果“visible”-property 返回“false”:没有组件被渲染(完美!)但是 cc 生成的 HTML 留下了一个空单元格(例如<td></td>),这导致了一个丑陋的布局 HTML - 表格(偏移一个单元格):

据我了解,这与生命周期(jstl 与 jsf)有关:我的 cc 在之前渲染,<h:outputText../>但我怎样才能摆脱空单元格(例如<td></td>)?我在这里错过了什么吗?

谢谢各位高手的帮助!马克

0 投票
0 回答
1079 浏览

jsf-2 - java.lang.IllegalStateException: 组件 ID 已在视图中找到

我一直收到这个错误。在阅读了有关 stackOverflow 的其他一些建议后,我向所有组件添加了 ID,并更改了会话范围。

我正在尝试创建一个包含选项卡的可折叠面板。

tabbb.xhtml

使用页面:tabbedcollapsible.xhtml

beancollPaneltabbBean都是请求范围的。

此外,表单不会呈现选项卡。我是 JSF 的新手,我已经坚持了很长时间。谢谢。