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



如何在processUpdates方法?

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

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

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

目前还不清楚你想要实现什么。我的意思是,在高层次上。

UIComponent.decodeprocessUpdates是中级生命周期 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);
}

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

最新更新