0
我必須創建屏幕才能在視圖中顯示大量的JPA實體。創建一個facelet並傳遞給它一組字段是很棒的,例如, List<Object>
。如何在運行時以編程方式生成JSF組件?
facelet /定製組件將需要將列表的每個元素轉換成適當的標籤以供顯示,例如,一個枚舉字段爲h:selectOneMenu,String字段爲h:inputText等。這需要在運行時完成。
這樣做最簡單的方法是什麼?
我必須創建屏幕才能在視圖中顯示大量的JPA實體。創建一個facelet並傳遞給它一組字段是很棒的,例如, List<Object>
。如何在運行時以編程方式生成JSF組件?
facelet /定製組件將需要將列表的每個元素轉換成適當的標籤以供顯示,例如,一個枚舉字段爲h:selectOneMenu,String字段爲h:inputText等。這需要在運行時完成。
這樣做最簡單的方法是什麼?
工作在先前從已存儲配置動態創建整個頁面的項目上。有需要
然後它變成一個動態創建組件的活動,在代碼中配置它們並將它們添加到通過綁定bean定義的父UIComponent中。這可能很棘手,但可以完成。
哇!涼!在我的服務器端項目上,我使用了org.primefaces.component.toolbar.Toolbar,並向其中添加了UIComponent子項。在facelet中我做了'
',並且它在運行時產生了整個工具欄。在這種情況下,工具欄是爲每個用戶唯一地生成的,這真的很好。在facelet中有一個標籤,p:toolbar,做到了。在這個場景中,你會描述它在facelet中的樣子,例如我將綁定根UIComponent到什麼標籤? –
我認爲它看起來與你描述的非常相似。您可能會在facelet本身中使用h:panelGroup,或類似於將作爲父容器UIComponent的東西。您可以使用binding屬性完全與您在工具欄示例中描述的相同。框架將創建UIComponent,並且您將在backingBean中引用它。一旦你有了,你可以將UIComponent添加到它,它是以編程方式創建的。 – EdH