我决定要解决的任务对于复合组件来说过于复杂并且从以下方法开始,我在JSF中设计了一个自定义组件:
@FacesComponent("offervaluescustom")
public class OfferValuesCustom extends UIComponentBase {
@Override
public void encodeBegin(FacesContext context) throws IOException {
ResponseWriter writer = context.getResponseWriter();
writer.startElement("table", this);
//a lof of code
writer.endElement("table");
}
}
我正在使用PrimeFaces作为JSF实现,并且想知道如何以编程方式将一个元素写入响应编写器,而不是复制生成的HTML代码,这是一种有效的解决方法,但不是可移植的,也不是不必要的工作重复。
我使用递归组件的原因是某些行中的列的条件跨越,但在其他行中没有,以及在encodeBegin
中很复杂但在cc:implementation
中很复杂的递归范围问题(渲染与视图)。