- PR -

StrutsでDynaValidatorを使用したチェック

1
投稿者投稿内容
宮本
会議室デビュー日: 2004/10/01
投稿数: 8
投稿日時: 2005-07-21 11:03
いつもお世話になっております。hideです。
この度はDynaValidatorActionFormについて皆様にご教授頂きたいと思い、投稿させて頂きました。

現在、Struts1.1でV1画面に複数のtextフィールドと複数ボタンを作成し、
ボタンが押下された場合に指定されたフィールドに対して
チェック動作を行いたいです。

例えば、textフィールドがAAA,BBB,CCCがあり
ボタンがAdd,Update,Deleteというものがあります。
そこで、Addボタンが押下された場合にAAAとBBBの必須入力チェックがかかり(CCCはblank)
Updateボタンが押下された場合にはAAAとCCCに必須入力チェックがかかり(BBBはblank)
Deleteボタンが押下された場合にはBBBとCCCに必須入力チェックがかかるとします(AAAはblank)

この各ボタン押下ごとの必須入力チェックをクライアント側で行いたいと思います。
(エラー表示は画面遷移でエラー表示するのではなく、JavaScriptのようにエラーの小窓で表示したいと思います。)

まず初めに提供されているValidatorFormを使用してクライアント側でチェックをしてみました。
必須入力チェックをする事は出来たのですが、Form毎にチェックをしてしまうので
チェックをしたくない箇所まで(blank箇所がチェックされ、エラーが表示されてしまう)チェックをしてしまいました。

次に、DynaValidatorFormではAction毎にチェックをするということで、
DynaValidatorFormを使用してみました。しかし、ここでも問題が起きました。

今回の作成しているプロジェクトでは1ボタンにつき1Action.javaではなく
画面毎にActionを作成し、その中にボタンのメソッドを作成して実装しています。
これではAction毎にチェックをかけるDynaValidatorFormは
どのボタンが押下されたか判断することが出来ないので、
チェックをかけれないのではないかと考えています。
やはり現状の1Actionで各ボタンに対してメソッドを使用するのではなく
1ボタンに付き1Action.javaを作成しなければ実装は出来ないのでしょうか?


今はまずクライアント側でボタン毎のチェックをかけるのに、
どの方法が一番良いのか模索しているところです。

プログラミングを始めて半年で、根本から間違ったことを記載しているかもしれませんが、
しっかりと記載したつもりです。
ネット上を色々調べてみたのですが、詳しく説明していただけるサイトがありません。
どうか先輩の方々ご教授お願い致します。よろしくお願い致します。
ぬべたそ
ベテラン
会議室デビュー日: 2003/12/18
投稿数: 72
投稿日時: 2005-07-22 10:16
こんにちは。
複数のボタンで同じフォーム中のTextフィールドを共有しているということですか?
以前私が実装した場合は、LookupDispatchActionクラスを継承したActionクラスを
作りました。

すいません。質問が良く分からないのでお聞きします。
質問の内容は、要求を満たす実現方法が複数思いつくが、どの方法が一番良いかを知りたいということですか?

クライアント側で入力値チェックを行うとありますが、これはJavaScriptを使うということですか?
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-07-22 12:50
意見ですが・・・

Strutsのバリデータですが、
思想として単項目の単純な検証を目的としてものであって、
組み合わせによる検証などは考えられていないと思います。
(Strust1.2のvalidWhenバリデータあたりならできるかも)

あくまで、
・必須入力項目に入力されているか
・数値のみを想定したフィールドに数字以外が入力されていないか
・指定の文字数以内で収まっているか
などの単純な入力チェックを行うものでしょう。

組み合わせによる検証になると、業務ロジックの一部と考えて差し支えないと思います。
たとえば、入力項目に入力して追加ボタンをクリックしたときに、
追加処理を行う前に主キーの重複チェックを行うことが多いと思いますが、
その前に検証を行えばいいと思います。
宮本
会議室デビュー日: 2004/10/01
投稿数: 8
投稿日時: 2005-07-25 13:35
かつのりさん、ぬべたそさんご意見ありがとうございます。

かつのりさんのおっしゃるとおりStrutsのバリデータは
簡単な検証処理のみでしか対応が難しいという事が
わかりました。自己完結的なところがありますが、
別の方法を使用することにします。

分かりにくい質問内容に対し、意見を頂きありがとうございました。
1

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