2013-04-30 18 views

回答

0

使用reRender屬性。

+0

我有多個頁面,有多個下拉框,輸入文字,通過改變下拉值的一些字段的渲染將會改變,任何想法,我可以立即在這裏使用? – 2013-04-30 10:09:39

+0

使用組件刷新頁面,並在reRender屬性中提及目標組件id。您可以根據您需要執行的操作在a4j支持組件中更改事件'onchange'。 – pudaykiran 2013-04-30 10:16:06

+0

標記沒問題,但我被告知要找到一些方法,我該如何立即使用以減少後端bean調用並更快地刷新頁面...任何想法? – 2013-04-30 11:51:21

0

試想一下,你有這樣的代碼:

<h:form> 
    <h:selectOneMenu id="subscriptions" 
        value="#{subscriptionController.subscriptions}" 
        immediate="true"> 
     <f:selectItem id="item1" itemLabel="News" itemValue="1" /> 
     <f:selectItem id="item2" itemLabel="Sports" itemValue="2" /> 
     <f:selectItem id="item3" itemLabel="Music" itemValue="3" /> 
     <f:selectItem id="item4" itemLabel="Java" itemValue="4" /> 
     <f:selectItem id="item5" itemLabel="Web" itemValue="5" /> 
    </h:selectOneMenu> 
</h:form> 

關於immediate屬性是指示組件事件應該JSF請求的驗證階段後發送到註冊事件偵聽器立即,而不是一個布爾標誌處理生命週期。直接標誌允許你繞過特定組件的JSF驗證。 Reference here

JSF生命週期是不容易理解,但你可以點擊這裏一個很好的解釋:JSF Life cycle

在經驗的一個新的水平,你可以添加AJAX改善你的表現。最值得推薦的是在這種情況下使用庫,例如​​RichFaces和PrimeFaces。

Regards,

0

根據您的要求,您似乎不需要使用即時屬性。

只需使用f:ajax來處理(執行)和更新(渲染)特定元素或元素組。它不會損害性能。

而且知道JSF生命週期和即時屬性的細節請在該操作要刷新頁面Baluc's Blog

相關問題