私のプロジェクトではstruts2を使用していますが、検証フレームワークを使用せず、ActionメソッドはActionクラスの "input"を返しません。ここに私の設定スニペット、ここでstruts2検証フレームワークは結果入力が必要です
<action name="searchTracker" class="searchAction" method="searchTracker">
<result name="success">/jsp/searchTracker.jsp</result>
<result name="error">/jsp/searchTracker.jsp</result>
<result name="input">/jsp/searchTracker.jsp</result>
</action>
は、私は、入力結果を削除した場合、それはこの
"No result defined for action SearchTrackerAction and result input"
のように、例外がスローされますと、私は戻ってチェックすると、アクションクラス
public String searchTracker(){
this.clearErrorsAndMessages();
List<File> files = fileManager.retrieveFiles(patchNumBySearch);
if(files == null){
this.setTrackers(null);
addActionError("This patch number doesn't exist. Please choose another one !");
return ERROR;
} else {
if (files.size() == 0) {
addActionError("This patch doesn't include any tracker. Please create tracker or choose another patch");
return ERROR;
}
else {
List<Tracker> trackers = commonUtils.convertToTrackers(files);
this.setTrackers(trackers);
}
}
return SUCCESS;
}
されています終了ログ、 "2011-11-07 00:09:13,841 DEBUG
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.debug:68 - Errors on action [email protected], returning result name 'input'"
なぜDefaultWorkflowInterceptorを呼び出し、結果名の入力を返すのですか?
入力結果を設定に戻すと、例外はなくなります。しかし、アクションが最初にエラーになる場合、私はブレークポイントを設定しても、それは再び成功することはありません、それはそのメソッドsearchTracker()
に行くことはありません。
Daveさん、ワークフローインターセプタを削除するにはどうすればよいですか? – user1006080
@ user1006080あなた自身の[インターセプタスタック](http://struts.apache.org/2.x/docs/interceptor-configuration.html)を定義し、これをデフォルトのスタックとして使用する必要があります。私は 'defaultStack'をコピーして、ちょうど"ワークフロー "を削除しようとします。 –
このインターセプタスタックを自分のアクション構成に追加する必要があります ? –
user1006080