アプリ版:「スタンプのみでお礼する」機能のリリースについて

StrutsのValidatorでフォームデータの入力チェックを行いたいのですが、validwhenバリデータが上手く動作しません。
サンプルを捜し求めてネット上をさ迷ったのですが、なかなか良いサンプルが見つからずに行き詰まってしまいました。
(OR条件、NOT NULLチェックのサンプルばかりでした…)
良いサンプルサイト/ここの記述が間違っているから動かないんだなど是非是非ご教示下さいませ。

【前提】
他の入力チェック(depends="maxLength"、depends="mask"など)は有効です。
なので設定ミス(?)ではありません。

【実現したい動作】
メモ(memo/テキストエリア)が200文字を超えていたらエラー。
ただし、削除フラグ(del_flg/チェックボックス)にチェックが入っていたら、200文字を超えていてもエラーを返さない。

【記述内容】
■validation.xml
<form name="myForm">
<field property="memo" depends="validwhen">
<msg name="memoerr" key="error.memoerr"/>
<arg0 key="Form.memo"/>
<var>
<var-name>test</var-name>
<var-value>(*this*.length > 200) and (del_flg.cecked == false)</var-value>
</var>
</field>
</form>

■message.properties
error.memoerr={0}は200字以下で入力して下さい。
Form.memo=メモ

■memo.jsp
<%@ page contentType="text/html;charset=Windows-31J" language="java" %>

<html:html locale="true">
<head><title>memo</title></head>
<body>
<html:form action="/ActionMemo">
メモ:<br>
<textarea name="memo" cols="100" rows="2"></textarea><br>
削除:<html:checkbox property="del_flg" /><br>
<html:submit value="送信"/>

</html:form>
</body>
</html:html>

A 回答 (1件)

textareaの記述は他の入力項目と同じくhtml:textareaの形式ではないですか?



>validwhenバリデータが上手く動作しません
現状でどういう風に動作しているのかも書いてもらえると回答しやすいです。
多分入力エラーにならず、実行エラーも出ないという状態なのだと思いますが…

この回答への補足

ご回答有難うございますm(_ _)m

textareaの記述は正確には↓の様になっています。
<textarea name="memo" cols="100" rows="2"><bean:write name="myForm" property="memo" /></textarea>
…確かに「html:textarea property="memo"」のが記述に統一感があって良い感じですね…修正しました。
ちなみに、作成しているのは1つ前の画面でマスタから現在のめも内容を取得して表示、次画面で編集、最後の画面でマスタに登録しに行くと言う仕組みです。

現状、ご指摘の通りに入力エラーも実行エラーも発生せずにノーチェックで次画面に遷移してしまいます…。
昨日1日格闘して、上手く行かずに諦めムードです。
レスポンスのことは棚上げして、ActionクラスでValidatorExceptionを投げた方がやりやすいかなぁ…と思いはじめました。

補足日時:2005/09/15 10:55
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!