- PR -

struts1.1b3のvalidateについて。

投稿者投稿内容
KingSize
常連さん
会議室デビュー日: 2002/11/13
投稿数: 38
投稿日時: 2003-02-18 20:05
お返事ありがとうございます。

validation.xmlは読み込まれているようです。
depends="xxx"とか変な値を入れるとチェックできずにActionに行ってしまいますが。
依然としてちゃんとdepends="required"など入れると
vaildateメソッドをオーバーライドしてその中で
ActionErrors errors = super.validate(mapping, request);
とし、
Iterator iterator = errors.get();
      while(iterator.hasNext()){
     ActionError actionError = (ActionError)iterator.next();
    /*debug*/logger.debug("actionError = " + actionError.getKey());
}
とするとactionError = errors.requiredとログに吐き出されます。
このあとはerrorsをリターンするだけで、遷移先には<html:errors/>が記述してあるのですが、どうしても表示されません。
errors.requiredとリソースファイルの紐付けがうまくいってないということなのでしょうか?
validation.xmlに
<form name="loginform">
  <field property="userId" depends="required">
  <arg0 key="USER_ID" resource="false"/>
</field>
</form>

ApplicationResources.propertiesには
errors.required={0} is required.
と定義してあるのですが...

よろしくお願いします。
うのきち
ベテラン
会議室デビュー日: 2003/02/17
投稿数: 55
投稿日時: 2003-02-18 21:25
え? 以前、errors.isEmpty()が、trueだと書いてませんでした?
なのに、中身が入っているのですか?

JSPに、

<h2><bean:message key="errors.required" arg0="hello"/></h2>

とか書いたら、メッセージは表示されますか?

KingSize
常連さん
会議室デビュー日: 2002/11/13
投稿数: 38
投稿日時: 2003-02-18 22:26
お返事ありがとうございます。

おかげさまで解決することができました。

原因はApplicationResourcesを読み込んでないという点にあったのですが、
web.xmlに
<init-param>
<param-name>application</param-name>
<param-value>resources.ApplicationResources</param-value>
</init-param>
という記述がしてありまして、その設定が効いてたみたいで読み込めなかったようです。消しました。
struts-config.xmlばかり見ていてweb.xmlの方に気が向いていませんでした。
本当に申し訳ありません。
<html:errors/>にエラーメッセージが表示されるようになりました。

うのきち様、最後まで親切にしていただき本当にありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)