可以在JSF渲染器中添加子组件吗?

时间:2012-02-21 17:05:09

标签: java jsf java-ee

我想在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); 


  }

这似乎不起作用,但我试图在里面添加子组件并让它渲染。谁能建议一个更好的方法呢?

1 个答案:

答案 0 :(得分:3)

您应该调用新添加的组件encodeBeginencodeEnd方法来渲染它们。

试试这个:

  xip.encodeBegin(context);
  xip.encodeEnd(context);

另请查看This link

如果有效,请给我反馈!