- PR -

Validatorでチェックするときに目立たせる方法

1
投稿者投稿内容
すひろ
大ベテラン
会議室デビュー日: 2006/10/17
投稿数: 124
お住まい・勤務地: 愛知県
投稿日時: 2006-10-17 22:36
Windows XP
Struts 1.29
Tomcat 5.0.28
Eclipse 3.2

ValidatorFormとValidation.xmlを設定してテキストフィールドの必須入力チェックをしています。
それで、チェックに引っかかって小さいウィンドウで警告を出す時に、
同時に該当するテキストフィールドの背景色を変更したりする事はできますか?

連続投稿になってしまい申しわけありませんが、よろしくお願いします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-10-17 23:18
・JavaScriptで制御
・テキストフィールドのstyleタグ
・テキストフィールドのclassタグ

・・・など、いくらでもサンプルは検索すると出てきますから、
ご自身で調べてみてください。

Strutsじゃなくても静的なHTMLでもできますから、
最小コードで問題解決してみてください。
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2006-10-18 01:23
errorKey
errorStyle
errorStyleClass
errorStyleId

http://struts.apache.org/1.2.x/userGuide/struts-html.html#text

1.2.4までしかまともに使ってなかったので、つい最近、結構便利な属性が
増えたことを知りました。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-10-18 01:32
>小僧さん

こんな便利なのがあったのですね。
情報ありがとうございます。

#Strutsってリビジョンが変わるだけでも、結構変化がありますね・・・
すひろ
大ベテラン
会議室デビュー日: 2006/10/17
投稿数: 124
お住まい・勤務地: 愛知県
投稿日時: 2006-10-18 20:52
返信ありがとうございます。

http://www.techscore.com/tech/ApacheJakarta/Struts/24-2.html

上記のサイトを参考にerrorStyleを使ってみたのですが、
エラーウィンドウ表示時に背景色は変わってくれません。

◇JSP
 氏名:<html:text property="simeiKanji" errorKey="kanji" errorStyle="background-color:red" />

◇アクションフォーム
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request){
  System.out.println("validateメソッド");

  ActionErrors errors = new ActionErrors();

  errors.add("simeiKanji", new ActionMessage("required"));

  // 作成した ActionErrors は errorKey に指定した値をキーにrequest に登録する.
  request.setAttribute("kanji", errors);

  return errors;
}

printlnを使って調べてみたら、どうやらvalidateメソッド自体処理されていないようです。
この"氏名"に対する必須チェックには
クライアントサイド検証(html:javascript)を使っているのですが、それが原因なのでしょうか。
ためしにサーバサイド検証でチェック処理を動かしてみたら、
背景色は変わったのですが今度はエラーウィンドウではなくメインウィンドウに警告が出てしまいました…。

エラーウィンドウによるメッセージ出力+背景色変化をするには、
クライアントサイド検証とサーバサイド検証のどちらにすればいいのでしょうか。

>静的なHTML
Javascriptやタグライブラリを使わずに、html言語のタグだけでできるということでしょうか。

質問ばかりで申しわけありませんが、よろしくお願いします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-10-18 23:01
あなたの仰る「エラーウィンドウ」とか「メインウィンドウ」ってなんですか?
エスパーじゃないかぎり、回答者にはまったくわからないと思います。

まず、根本はバリデーションがうまく行われていないという事ですよね?
Strutsの設定がどうなっているかも、こちらではわかりませんから、
アドバイスするのは難しいですね。

そもそもサーバかクライアントのどちらかでしか
バリデーションできないというものではありません。
使い方が間違っているだけです。

引用:

>静的なHTML
Javascriptやタグライブラリを使わずに、html言語のタグだけでできるということでしょうか。


色を変えるということなら、サーバサイドの処理ではありません。
サーバとクライアントの違いを勉強してください。
すひろ
大ベテラン
会議室デビュー日: 2006/10/17
投稿数: 124
お住まい・勤務地: 愛知県
投稿日時: 2006-10-18 23:36
ごめんなさい。
エラーウィンドウはOKボタンと文章が表示される小さいウィンドウ
(アラートとも呼ばれるのでしょうか)のことで、
メインウィンドウはJSPで作る氏名のテキストボックスが
置かれているウィンドウのことを考えて書きました。

すみませんでした。
1

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