Jsf 从复合组件获取支持组件中呈现的html代码

Jsf 从复合组件获取支持组件中呈现的html代码,jsf,jsf-2.2,composite-component,Jsf,Jsf 2.2,Composite Component,如何在中的支持组件中获取已发布的表单数据 processUpdates方法 @Override public void processUpdates(FacesContext context) { //get here rendered html code } 或者我可以通过解码方法获取已发布的表单数据吗 @Override public void processUpdates(FacesContext context) { //get here rendered html c

如何在中的支持组件中获取已发布的表单数据
processUpdates
方法

@Override
    public void processUpdates(FacesContext context) {
//get here rendered html code
}
或者我可以通过
解码
方法获取已发布的表单数据吗

@Override
    public void processUpdates(FacesContext context) {
//get here rendered html code
}
[编辑]:
我的目标是获取发布的表单数据,而不是获取生成的html代码(Sry我不是很准确)

目前还不清楚您想要实现什么。我是说,在高水平上

UIComponent.decode
processUpdates
是中等级别的生命周期API,当您想要扩展该框架时,应该覆盖这些API

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

此外,通常只有扩展
UIInput
的组件需要挂接在这些阶段,因为它们绑定到
value=“#{…}”
值表达式(在大多数情况下,该表达式反过来引用托管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);
}
String clientId=this.getClientId(上下文);
Map requestMap=context.getExternalContext().getRequestParameterMap();
字符串newValue=requestMap.get(clientId);
if(newValue!=null)
{
此.setSubmittedValue(新值);
}

请发布完整的xhtml facelet代码(不是复合代码,而是使用该复合代码的facelet),这样我就可以理解您想要去哪里,并且我可以尝试为您指出要使用的正确工具。

尝试从生成的HTML中获取输入值是疯狂的。您有一个成熟的服务器端框架,其主要目标是模拟有状态通信。请发布你的xhtml(facelets)代码,这样我才能理解你想要实现什么,而不是想要解决什么:)也许你想要什么?@MicheleMariotti我是sry,我试图说,我需要获取发布的表单数据,而不是生成的html。我编辑了我的问题。