0

こんにちは私はJavaクラスに2つのURLマッピングを持っています1つはハイパーリンクで呼び出しており、もう1つはボタンで呼び出しています

ハイパーリンクで私は

@URLAction(mappingId="abc")
//method..
private String hello(){
return null;
}

私が呼ぶボタンに

@URLAction(mappingId="def")
//method..
private String hi(){
return null;
}

ハイパーリンクで初めてhello()を呼び出すと正常に機能しますが、ボタンでhi()を呼び出すと正常に機能しますが、hello()も呼び出されます

OCPSOFTの場合と同様に、アノテーション付きメソッドが属するクラスが@URLMappingsアノテーションを使用して複数のURLマッピングを宣言する場合、アクションは各マッピングに使用されます。 http://ocpsoft.org/docs/prettyfaces/3.3.3/en-US/html/Configuration.html

私の質問は、各urlmappingidで1つのメソッドを呼び出したいということです。事前にt​​hnks。

4

1 に答える 1

1

のようなものをクリックしてJSFフォームを送信すると<h:commandButton>、JSFは常にポストバックを実行します。つまり、リクエストは元のページに戻ります。そのため、メソッドが2回実行されます。これが不要な場合は、ポストバックのページアクションメソッドの呼び出しをスキップするようにPrettyFacesを構成できます。

@URLAction(mappingId="abc", onPostback=false)
private String hello(){
    return null;
}
于 2013-03-26T13:55:18.363 に答える