Validatorを動かすと「Could not find action or result」と怒られる

ActionSupportインタフェースを継承したクラスを作って、validation.xmlでValidatorを動かすとこんなのがでた。

2007/09/28 16:51:31 org.apache.struts2.dispatcher.Dispatcher serviceAction
致命的: Could not find action or result
No result defined for action com.daipresents.struts209.action.UserRegAction and result input - action - file:/C:/eclipse/eclipse-jee-europa-win32/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/Struts2.0.9/WEB-INF/classes/struts.xml:18:27

どうも、Validationエラーの遷移先であるinputが設定されていないらしい。

調べてみる

ActionSupportが実装しているインタフェース、ActionのJavadocをみてみると、

  • ERROR・・・アクションの実行に失敗
  • INPUT・・・入力エラーが発生
  • LOGIN・・・ ログインしてないから実行できない?
  • NONE・・・アクションの実行は成功したけどViewを表示できない
  • SUCCESS・・・アクションの実行に成功

が定義されている。struts.xmlで

<result name="input">/error.jsp</result>

とActionに定義したら解決。定数になったんだなー。