SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

続 Struts 2入門

Struts 2の新たな検証機能「OVal Frameworkプラグイン」

続・Struts2入門(6)

OValプラグインを利用して設定できるチェック内容

 ではOValプラグインを利用することで入力チェック可能な内容を一覧で示します。単純な単一パラメータのフォーマットチェックや必須チェックだけでなく、オブジェクトに対するチェックも可能になっています。チェックで必要なパラメータやメソッドが必要なものについても説明内に記載しています。

表1 OValチェック一覧
アノテーション名 説明 チェックタイプ
AssertFalse 指定された値(Boolean)の値がFalseであること。単体オブジェクトのみではなく、AssertValidのようにネストされたオブジェクトに対して指定が可能になる。1つでもFalseである場合はFalseになる。 Boolean
AssertTrue 指定された値(Boolean)の値がTrueであること。AssertFalseの逆の結果となる。 Boolean
AssertValid アノテーションをつけたクラス内のフィールドにてチェック内容を記載することを宣言する。そのクラスのネストされたメソッドにてチェック内容が記述可能。Struts 2でのVisitorFieldValidatorの役割と一緒。 Custom
CheckWith 複雑な入力チェックを実装可能。CheckWithCheck.SimpleCheckを実装したインナークラスにてチェック内容をコードで実装する。
public boolean isSatisfied(Object validatedObject, Object value) が必須実装。
Custom
CheckWithMultiple CheckWithによるチェックが複数ある場合に使われる。チェック用インナークラスが複数実装可能。 Custom
ValidateWithMethod methodNameで指定したメソッドを起動し、true/falseでチェック結果を取得する。parameterTypeで引数の型を指定する(プリミティブも.classで指定可能)。 Custom
DateRange min~max以内の日付(Date)であること。属性formatにてSimpleDataFormatで定義できるフォーマットを定義できる。 Date
Future 入力された値が、現在より未来であること。 Date
Past 入力された値が、現在より過去であること。 Date
EqualToField valueにて指定したフィールドと同じ値であること。メールアドレスやパスワードなど、同じ値が入力されることを想定した項目に使われる。 Field
NotEqualToField 入力された値が、指定されたフィールドと等しくないこと。EqualToFieldの逆パターン。 Field
NotNull 指定されたインスタンスやフィールドがnullでないこと。 Field
InstanceOf 対象のインスタンスが、指定されたクラスまたはインターフェースであること。インターフェースの場合、指定されたインターフェースがすべて含まれている場合にTrueになる。 Instance
InstanceOfAny 対象のインスタンスが、指定されたクラスまたはインターフェースであること。インターフェースの場合、指定されたインターフェースのいずれか1つ含まれている場合にTrueになる。 Instance
NoSelfReference 指定したインスタンスがチェック対象のインスタンス自身ないしは参照でないこと。 Instance
Length 入力された値(=文字列)がmin~max以内の長さであること。 Length
MaxLength 入力された値の文字列長がvalue以下であること。 Length
MinLength 入力された値の文字列長がvalue以上であること。 Length
Max 入力された値(数値)がvalue以下であること。 Range
Min 入力された値(数値)がvalue以上であること。 Range
NotNegative 入力された値(数値)が、マイナスの値でないこと。0以上の数値。 Range
Range 入力された値(数値:double)が、min~max以内であること。 Range
Email [Validなメールアドレス]であること。チェックは正規表現で行われる。EmailCheck.EMAIL_PATTERN にて正規表現の書式をカスタマイズすることができる。 Regex
MatchPattern 入力された値(=文字列)がpattern[]で定義された正規表現を満たすこと。Pattertn配列には文字列で定義する。 Regex
NotMatchPattern 入力された値(文字列)が、指定された正規表現を満たさないこと。MatchPatternの逆。 Regex
MaxSize 指定された配列またはCollectionの長さがvalue以下であること。 Size
MinSize 指定された配列またはCollectionの長さがvalue以上であること。 Size
Size 指定された配列またはCollectionの長さ(length())が、mix~max以内であること。 Size
HasSubstring 入力された値が、valueの文字列を含むこと。String.substring()で値が含まれる。 String
MemberOf 入力された値(文字列)がvalue(String[])で指定している文字列集合のどれかに合致すること。 String
NotBlank 入力された値が空白でないこと。半角空白のみの文字列(文字数は問わない)であればfalseとなる。 String
NotEmpty 入力された値が空文字("")でないこと。 String
NotEqual 入力された値(文字列)がvalueで指定された値と等しくないこと。 String
NotMemberOf 入力された値(文字列)がvalue(String[])で指定している文字列集合のどれにも合致しないこと。 String
AssertURL [ValidなURL]であること。permittedURISchemesにて許可するプロトコルを設定する。デフォルトは{HTTP, HTTPS, FTP}。 URLCheck

次のページ
入力フォーム画面と複数のチェック

この記事は参考になりましたか?

続 Struts 2入門連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 東 浩二(アズマ コウジ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5345 2010/08/09 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー