2015-03-13 35 views
-3

我們有一個JAR文件以下版本的一個JSF項目:主要面向AJAX不工作

  1. 總理面臨5.1
  2. JSF 2.0
  3. 的JavaEE-API 5
  4. 但項目構面(中eclipse)定義了JSF 2.2,我們從未改變它。
  5. JPA 2(JavaEE的-API 5)
  6. EJB 3.0

我們的AJAX是行不通的。

<p:selectOneRadio id="enrolledInPlanFlag" value="#{phInfoBean.enrldPlanFlag}" label="Action" > 
<f:selectItem itemLabel="Yes" itemValue="Yes" /> 
<f:selectItem itemLabel="No" itemValue="No" /> 
<p:ajax process="enrolledInPlanFlag" update="@form"/> 
</p:selectOneRadio> 

<p:dialog id="dialog" header="APTC Warning" widgetVar="dlg1" modal="true" height="200" width="500" resizable="false" rendered="#{phInfoBean.enrldPlanFlag eq 'Yes'}"> 

我想顯示基於selectOneRadio的對話框。但AJAX不起作用,我們有時會出現奇怪的情況,有時甚至不起作用。

我們用@ViewScoped註釋了託管bean。

請幫忙。

+0

從開發人員的角度定義'不工作'。 AJAX包含幾件事。發送請求,處理它,獲得響應等。自己調查更多,並顯示最小的豆碼爲 – Kukeltje 2015-03-13 08:48:25

+0

我們正在嘗試爲單選按鈕定義。我的要求是,在選擇任何選項時,我應該顯示對話框。但是當我點擊單選按鈕時,頁面就會響應。我看不到對話框。我嘗試使用JSF中的panelGrid和其他輸入組件,但沒有運氣。請幫助 – toxicatedblood 2015-03-13 08:57:47

+0

請從**開發者**的角度。這再次來自用戶的角度 – Kukeltje 2015-03-13 09:19:14

回答

0
  • 使其工作

你永遠不會在你的代碼顯示的對話框。你可以一個oncomplete事件附加到您的p:ajax

<p:ajax process="enrolledInPlanFlag" update="@form" oncomplete="PF('dlg1') != null ? PF('dlg1').show() : ''" /> 

條件PF('dlg1') != null,如果你選擇「否」的對話框中您的網頁不再呈現是必需的,因此PF(「widgetVarOfDialog」)不可達。

  • 其他備註

我想通過提高這樣的代碼:

  1. 更改enrldPlanFlag到布爾值,而不是一個字符串(清潔器IMO)
  2. 顯示在聽者的對話框編程(從你的p:ajax調用)如果布爾值爲真

爲什麼?將邏輯留在bean而不是.xhtml頁面