我正在開發一個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}" />
沒有什麼不同尋常我會想到,但我仍然得到這個問題。
以前有沒有人看過類似的東西?
問候
比爾