从复合组件的支持组件中获取渲染的 html 代码

Get rendered html code in Backing Component from Composite Component

如何在后台组件中获取发布的表单数据 processUpdates 方法?

@Override
    public void processUpdates(FacesContext context) {
//get here rendered html code
}

或者我可以在 decode 方法中获取发布的表单数据吗?

[编辑]: 我的目标是获取发布的表单数据 - 而不是获取生成的 html 代码(对不起,我不是很准确)

目前尚不清楚您想要实现什么。我的意思是,在高水平上。

UIComponent.decodeprocessUpdates 是中级生命周期 API,当您想要 扩展 框架时应该覆盖它们。

如果您只需要使用框架,您需要一个托管bean,而不是支持组件.

此外,通常 只有扩展 UIInput 的组件需要挂钩这些阶段,因为它们绑定到 value="#{...}" 值表达式(在在大多数情况下,turn 指的是 托管 bean),并且需要将这些值与绑定表达式同步。

我怀疑您正在无用地使您的生活复杂化:如果您对框架的运作方式没有很好的理解,那么挂钩到中级或低级 API 将是一个真正的痛苦。

无论如何,标准请求参数解码到输入组件是这样的:

String clientId = this.getClientId(context);

Map<String, String> requestMap = context.getExternalContext().getRequestParameterMap();

String newValue = requestMap.get(clientId);
if (newValue != null) 
{
    this.setSubmittedValue(newValue);
}

拜托,post 完整的 xhtml facelet 代码(不是复合代码,而是 使用 那个复合代码的 facelet),所以我可以理解你想去哪里我可以尝试为您指明要使用的正确工具。