我想在 encodeBegin 内部添加一个子组件
public void encodeBegin(FacesContext context,
UIComponent component)
throws IOException {
XspInputText xip = new XspInputText();
ViewPickList vplComponent = (ViewPickList) component;
ResponseWriter writer = context.getResponseWriter();
String viewName = vplComponent.getViewName();
if (StringUtil.isNotEmpty(viewName)) {
xip.setId(vplComponent.getId() + "_InputText");
xip.setValue("Value");
vplComponent.getChildren().add(xip);
super.encodeBegin(context, vplComponent);
}
这似乎不起作用,但我正在尝试在其中添加子组件并让它呈现。任何人都可以建议更好的方法吗?
最佳答案
你应该调用你新添加的组件 encodeBegin
和 encodeEnd
方法来渲染它们。
试试这个:
xip.encodeBegin(context);
xip.encodeEnd(context);
另请查看 This link .
如果有效或无效,请给我反馈!
关于java - 您可以在 JSF 渲染器中添加子组件吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9381809/