0

IBM Wepsphere ポータル 5.1 環境で RAD 7 を使用してポートレットを開発しています。バックエンドで ajax 呼び出しを使用してオブジェクトを生成するさまざまなフィールドがあります。これは、ユーザーが送信せずにページから移動した場合にデータを保持するためです。入力は、ポップアップとドロップダウンの組み合わせです。ユーザーがデータを永続的に保存したい場合は、送信ボタンをクリックします。

ページ上の一定量以上のフィールドに入力する場合、送信ボタンを 2 回クリックする必要があることに気付きました。最初の送信はページを更新するだけのようで、コマンド ボタンの背後にあるアクションは呼び出されません。2 つ目はデータを送信します。

私はこれを使ってかなり多くのテストを行いましたが、送信ボタンが最初に機能しない前に実行できる ajax 呼び出しは 7 回に制限されているように思われることに気付きました。1つのフィールドを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}" />

私が考えていた異常なことは何もありませんが、それでも問題が発生します。

誰もこのようなものを見たことがありますか?

よろしく

明細書

4

1 に答える 1

0

私は同じ問題に直面していました..私が見つけた解決策はget;stopであり、この問題を引き起こしています.behaviorActionからstopを削除するだけです..その後、N回のajax呼び出しを行うことができます...

于 2011-09-07T04:38:43.980 に答える