2011-03-17 80 views
0

我正在開發一個IBM Wepsphere門戶5.1環境與RAD 7的Portlet。我有各種各樣的字段,用ajax調用在後端彈出對象。這是爲了保持數據,如果用戶瀏覽頁面而不提交它。輸入是彈出和下拉菜單的組合。當用戶想要永久存儲數據時,點擊一個提交按鈕。我可以在JSF中調用的Ajax調用數量是否有限制?

我注意到,當您填寫超過一定數額的頁​​面上的字段,你需要點擊兩次提交按鈕。第一次提交似乎只是刷新頁面,並沒有調用命令按鈕後面的操作。第二個提交數據。

我已經做了很多與此測試,並意識到,似乎是7個AJAX呼叫限制之前提交按鈕不會工作第一次我能做到的。即使我只是改變了一個領域8次失敗。

不知怎麼去在7呼叫離開頁面處於不同的狀態。從頁面導航將修復它。也就是說,如果您填寫了所有字段,然後轉到菜單中的其他頁面,然後返回,則可以通過第一次點擊進行提交。

在jsp典型的下拉是象下面這樣:

<h:panelGroup id="resultGroup"> 
<h:selectOneMenu syleClass="selectOneMenu" id="menu2" value="#{pc_CallView.result}">  
<f:selectItems value="#{pc_CallView.results}" /> 
</h:selectOneMenu> 
<hx:behavior event="onchange" target="menu2" behaviorAction="get;stop" targetAction="resultGroup"> 
</hx:behavior></h:panelGroup> <hx:ajaxRefreshRequest target="resultGroup" id="ajaxRefreshRequest6" params="menu2"> 
<hx:ajaxRefreshRequest> target="resultGroup" id="ajaxRefreshRequest6" params="menu2"></hx:ajaxRefreshRequest> 

在輔助bean的方法是象下面這樣:

爲了處理所選擇的值:

public String getResult(){ 

    String result = (String)FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("menu2"); 
    if(result!=null && !result.trim().equalsIgnoreCase("")){ 
    getHelper().getCallDetails().setResult(result); 
    }  
    return getHelper().getCallDetails().getResult(); 
} 

要填充在下拉菜單的選擇:

public List getResults(){  

List results = getHelper().getCallResults(); 
List resultSelectItemsList = new ArrayList(); 
Iterator it = results.iterator(); 
resultSelectItemsList.add(new SelectItem("","-- select --")); 
while(it.hasNext()){ 
    ClientCallResult result = (ClientCallResult)it.next(); 
    resultSelectItemsList.add(new SelectItem(result.getId(),result.getResult())); 
} 

return resultSelectItemsList; 

}

提交按鈕:

<hx:commandExButton 
     type="submit" value="Save " styleClass="commandExButton" 
     id="saveButton" action="#{pc_Footer.doSaveAction}" rendered="#{pc_Footer.showSave}" /> 

沒有什麼不同尋常我會想到,但我仍然得到這個問題。

以前有沒有人看過類似的東西?

問候

比爾

回答

0

我曾面臨同樣的問題..有什麼解決辦法,我發現是得到;停止努力使這個問題......剛剛從behaviorAction刪除停止..然後你可以讓N多Ajax調用的...

相關問題