2011-05-19 55 views
2

目前我正在構建一個頁面,用於輸入我公司處理的不同產品的定價數據。定價數據有點複雜,需要不同的表單,具體取決於輸入新數據的項目。現在我處理這個問題的策略是將頁面拆分爲多個表單,並在輸入有效數據時觸發下一個階段的AJAX更新。每個表單都包含一個ui:include指向控制器bean上的一個方法,該方法返回一個字符串,該字符串指向一個xhtml代碼片段,其中包含之前輸入的數據的適當表單結構。多階段形式策略

<form id="stageOne"> Some content that triggers an ajax update of stageTwo </form> 
<form id="stageTwo"> <ui:include src="#{controller.getStageTwo()"> </form> 

而且支持bean的方法:

public String getStageTwo() { 
    switch (stageOneContent) { 
     case 1: return "/context-root/snippetName.xhtml"; 
     case 2: return "/context-root/snippetName2.xhtml"; 
    } 
} 

這個解決方案感到莫名其妙我錯了,尤其是具有控制器方法負責瞭解所有的XHTML的確切位置,片段中的調用頁面可能使用。我還比較新,覺得我可能會錯過一些東西。有沒有更好的方法來處理這種情況?

回答

1

這種情況怎麼樣?

<ui:include src="snippetName#{controller.stageOneContent}.xhtml"> 

你只需要重命名snippetName.xhtmlsnippetName1.xhtml

+0

這將很好地工作。我不知道jsf會自動連接src的內容。 – Elk 2011-05-19 17:12:33

+0

不客氣。這不完全是「JSF」。這是EL(表達式語言)。參見http://stackoverflow.com/tags/el/info – BalusC 2011-05-19 17:26:16