如何在processUpdates
方法?
@Override
public void processUpdates(FacesContext context) {
//get here rendered html code
}
或者我可以在decode
方法中获取已发布的表单数据吗?
[编辑]: 我的目标是获取发布的表单数据 - 而不是获取生成的 html 代码(Sry 我不确切)
目前还不清楚你想要实现什么。我的意思是,在高层次上。
UIComponent.decode
和processUpdates
是中级生命周期 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),这样我就可以理解你想去哪里,我可以尝试为您指出正确的工具。