我正在创build一个复合组件,将包装数据表来实现非常简单的分页。 我需要保存状态(当前页码)之间的Ajax请求。 我试图在我的FacesComponent中创build字段,但是我发现它们在JSF生命周期中被清除了: @FacesComponent(value = "bfTableComponent") public class BFTableComponent extends UIComponentBase implements NamingContainer { private int currentPageNumber; … 我似乎无法find一个简洁的指南来做到这一点! 在创build复合组件时,如何在请求之间保存状态?
我问了这个问题,尽pipe答案直接满足了我的需求,但我还是有一种感觉,就是对这个问题有一个更简单的解决scheme。 我想有一个复合组件接受项目列表(商定的项目的types,以便成员可以在复合组件中自由使用) CC(复合组件)显示项目列表并允许项目的增加和减less。 我想以最简单和有效的方式做到这一点。 为了说明这个问题,举个例子: 定义应该相当简单(当然,除非:-)): <special:dynamicFieldList value="#{bean.fieldList} /> Field对象最抽象的forms是: public class Field{ String uuid; String value; } 我想就是这样。 你将如何以简单的方式实现这个? 谢谢!
最近,我开始在Facelets中使用JSF 2.0,并对新的复合组件感到困惑,这些组件知道现有的<ui:include>和Facelets 1.x提供的其他模板技术。 这些方法有什么区别? 在function上他们似乎提供了相同的: <ui:param> vs <cc:attribute> , <ui:insert> + <ui:define> vs标记文件,重复使用现有的模板。 在复合组件的情况下,除了语法和界面清晰之外,还有什么? 性能可能不同吗?
我在panelGrid中有很多的outputLabel和inputText对 <h:panelGrid columns="2"> <h:outputLabel value="label1" for="inputId1"/> <h:inputText id="inputId1/> <h:outputLabel value="label2" for="inputId2"/> <h:inputText id="inputId2/> … </h:panelGrid> 我想对他们有一些行为:像每个inputText相同的验证或相同的大小。 所以我创建了一个只包含一个outputLabel和一个inputText的复合组件 <my:editField value="field1"/> <my:editField value="field2"/> 但现在,当我把它们放在gridPanel中时,它们不会根据标签文本的长度而被对齐。 我明白为什么,但我不知道如何解决。