7
A
回答
5
複合組件的繼承是不可能的。我們爲避免代碼重複所做的工作是修飾JSF2複合組件的實現。
通過我們的應用程序的所有輸入字段共有的東西是一個裝飾模板中提供的是這樣的:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:cc="http://java.sun.com/jsf/composite"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:cu="http://mytags.de/jsftags">
<!-- provides a common set of layout information for inputfields -->
<ui:param name ="fieldStyle" value="#{propertiesController.get('FIELD_STYLE', cc.attrs.name)}" />
<h:panelGroup id="basicInputField" styleClass="basicInputField" layout="block" style="width: #{cc.attrs.width}; height: #{cc.attrs.height};">
<ui:insert name="component">
no component given...
</ui:insert>
</h:panelGroup>
</ui:composition>
和複合組件使用模板來裝點自己:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:cc="http://java.sun.com/jsf/composite"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:cu="http://mytags.de/jsftags">
<cc:interface>
<cc:attribute name="name" required="true" />
<cc:attribute name="width" required="false" default="auto" />
<cc:attribute name="height" required="false" default="auto" />
<cc:attribute name="inset" required="false" default="0px" />
</cc:interface>
<cc:implementation>
<ui:decorate template="basicInputField.xhtml">
<ui:define name="component">
<h:inputText id="inputText" style="#{fieldStyle} width: 100%;" value="#{levelContent.test}" />
</ui:define>
</ui:decorate>
</cc:implementation>
</html>
這樣我們只需要改變裝飾模板,當我們獲取字段屬性的方式(即只讀,必需,樣式等)發生變化時。
相關問題
- 1. 聚合和繼承關係
- 2. 在jsf中繼承
- 3. 是否有可能在JSF 2中使用複合組件的模板?
- 4. Angular 2組件繼承onClick
- 5. Angular 2繼承組件
- 6. Treeview繼承關係
- 7. JSF 2:Ajax未在嵌套複合組件中觸發
- 8. JSF複合組件Netbeans
- 9. JSF更新複合組件
- 10. JSF複合組件和selectItems
- 11. JSF複合組件ID
- 12. JSF複合組件驗證
- 13. 如何用繼承和組合關係生成C++類圖?
- 14. 在JavaScript中寄生組合繼承和組合繼承有什麼區別?
- 15. Rails繼承關係問題
- 16. 繼承自has-a關係
- 17. SQLAlchemy的,繼承和關係
- 18. Rails - Single Table是否繼承申請人/員工關係
- 19. 使用組合而不是繼承
- 20. PostgreSQL中的繼承和關係
- 21. OOP:簡單遊戲設計中的對象繼承和組合關係
- 22. jsf 2使用複合組件時的問題f:facet
- 23. JSF 2複合組件不更新與F值:阿賈克斯
- 24. 爲JSF 2複合組件生成文檔
- 25. JSF 2複合組件insertChildren標記使@ViewScoped進入@RequestScoped :(
- 26. 在Dart中,是否無法繼承包?
- 27. NHibernate組件繼承
- 28. JSF 2複合:ActionSource接口暴露在UI CommandButton控件:重複
- 29. 在Ruby on Rails中,子類是否繼承父類的關聯?
- 30. 如何在Angular 2組件標籤中繼承樣式
我不確定要給出準確的答案,但我認爲在複合組件中,繼承的替代是子組件。參見:http://weblogs.java.net/blog/cayhorstmann/archive/2010/01/30/composite-input-components-jsf – sfrj 2011-10-20 20:06:14