gpt4 book ai didi

jsf - 以编程方式添加复合组件

转载 作者:行者123 更新时间:2023-12-01 23:54:54 26 4
gpt4 key购买 nike

我想以编程方式包含以下复合组件:

<composite:interface>
<composite:attribute name="sampleBean" />
<composite:attribute name="autoCompleteMethod"
method-signature="java.util.List autoCompleteMethod(java.lang.String)" />
</composite:interface>

Omnifaces ,有一个函数:

// Programmatically include composite component.
Components.includeCompositeComponent(someParentComponent, libraryName, resourceName, id);

但是,我不清楚如何在获取的 UIComponent 实例中指定 autoCompleteMethod。我怎样才能做到这一点?

最佳答案

includeCompositeComponent() 返回表示复合实现的 UIComponent 实例。

UIComponent composite = Components.includeCompositeComponent(someParentComponent, libraryName, resourceName, id);

它的所有属性都可以通过 UIComponent#getAttributes() 作为 Map 使用。

Map<String, Object> attributes = composite.getAttributes();

您可以使用 Components#createMethodExpression()创建 EL 方法表达式。假设您打算指定 #{bean.complete},下面是一个示例:

MethodExpression autoCompleteMethod = Components.createMethodExpression("#{bean.complete}", List.class, String.class);

现在,只需将其设置为属性即可!

attributes.put("autoCompleteMethod", autoCompleteMethod);

关于jsf - 以编程方式添加复合组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24410194/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com