Develop and Download Open Source Software

Recent Changes

2012-05-25
2012-04-24
2012-04-17
2012-04-16

Wiki Guide

Side Bar

@BlancoValidateRequired アノテーション

フィールドのための必須検証メソッドを自動生成します。

仕様

適用箇所

  • フィールド
  • オブジェクト型にのみ適用可能

アノテーション要素

要素名 デフォルト 説明

詳細

  • このアノテーションが付与されたフィールドに対して必須検証用メソッドが生成されます。
  • 応用的に、@BlancoValidateMethodForStruts と組み合わせると、Struts 用の検証メソッドを追加で生成します。

利用の例

入力ソースコード: AbstractSampleForm.java

package sample.struts;

import org.apache.struts.action.ActionForm;

import blanco.gettersetter.BlancoGetterSetter;
import blanco.struts.BlancoStrutsForm;
import blanco.struts.BlancoStrutsReset;
import blanco.validate.BlancoValidateLength;
import blanco.validate.BlancoValidateMethodForStruts;
import blanco.validate.BlancoValidateRequired;

/**
 * サンプル・フォーム。
 */
@BlancoStrutsForm
public abstract class AbstractSampleForm extends ActionForm {
    private static final long serialVersionUID = 1L;

    /**
     * 文字列のフィールド。
     */
    @BlancoGetterSetter
    @BlancoStrutsReset
    @BlancoValidateMethodForStruts
    @BlancoValidateRequired
    @BlancoValidateLength(max = 5)
    protected String field1 = "";

    /**
     * 整数のフィールド。
     */
    @BlancoGetterSetter
    protected int field2 = -1;
}

出力ソースコード: SampleForm.java ★以下のソースコードは Blanco2g によって自動生成されたものです。

/*
 * このクラスは 'AbstractSampleForm' の具象クラスとして blanco Framework によって自動生成されました。
 */
package sample.struts;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;

import blanco.fw.BlancoGeneratedBy;

/**
 * サンプル・フォーム。
 */
@BlancoGeneratedBy(name = "Blanco2g")
public class SampleForm extends AbstractSampleForm {
    /**
     * シリアルバージョン UID.
     */
    private static final long serialVersionUID = 1L;

    /**
     * リセット
     *
     * @param mapping アクション・マッピング.
     * @param request リクエスト.
     */
    public void reset(final ActionMapping mapping, final HttpServletRequest request) {
        field1 = "";
    }

    /**
     * 文字列のフィールド。
     * [@BlancoGetterSetter]
     *
     * @return 取得したい値。
     */
    public String getField1() {
        return field1;
    }

    /**
     * 文字列のフィールド。
     * [@BlancoGetterSetter]
     *
     * @param field1 設定したい値。
     */
    public void setField1(final String field1) {
        this.field1 = field1;
    }

    /**
     * 文字列のフィールド。
     * [@BlancoValidateRequired]
     * [@BlancoValidateLength]
     *
     * @return 検証結果の文字列。問題なければ null。
     */
    public String validateField1() {
        // [@BlancoValidateRequired]
        if (field1 == null || field1.trim().length() == 0) {
            return "'field1' に値が入力されていません。";
        }
        // [@BlancoValidateLength]
        {
            final String value = (field1 == null ? "" : field1.toString());
            if (value.length() > 5) {
                return "'field1' は 5 文字以下で入力してください。";
            }
        }
        return null;
    }

    /**
     * 文字列のフィールド。
     * [@BlancoValidateMethodForStruts]
     * [@BlancoValidateLength]
     *
     * @param actionMessages Apache Struts ActionMessages
     * @return 検証結果が問題無しであれば true。検証結果に問題あれば false。
     */
    public boolean validateField1(final ActionMessages actionMessages) {
        // [@BlancoValidateRequired]
        if (field1 == null || field1.trim().length() == 0) {
            final ActionMessage msg = new ActionMessage("message.blanco.validate.required.input", "field1");
            actionMessages.add("WARN", msg);
            return false;
        }
        // [@BlancoValidateLength]
        {
            final String value = (field1 == null ? "" : field1.toString());
            if (value.length() > 5) {
                final ActionMessage msg = new ActionMessage("message.blanco.validate.length.max", "field1", "5");
                actionMessages.add("WARN", msg);
                return false;
            }
        }
        return true;
    }

    /**
     * 整数のフィールド。
     * [@BlancoGetterSetter]
     *
     * @return 取得したい値。
     */
    public int getField2() {
        return field2;
    }

    /**
     * 整数のフィールド。
     * [@BlancoGetterSetter]
     *
     * @param field2 設定したい値。
     */
    public void setField2(final int field2) {
        this.field2 = field2;
    }
}

追加情報

Apache Struts Form との組合: 追加メッセージ

Apache Struts Form と組み合わせる場合には、以下のメッセージを追加で設定する必要があります。

キー メッセージ 説明
message.blanco.validate.required.input 「{0}」に値が入力されていません。
message.blanco.validate.required.input.locationinfo {0}「{1}」に値が入力されていません。 @BlancoValidateMessage(useLocationInfo = true) により位置情報を追加した場合
message.blanco.validate.required.selection 「{0}」を選択してください。
message.blanco.validate.required.selection.locationinfo {0}「{1}」を選択してください。 @BlancoValidateMessage(useLocationInfo = true) により位置情報を追加した場合

Apache Struts Form との組合: 追加処理

  • メッセージに "WARN" という追加のグループを設定する必要があります。

リンク


SourceForge.JP is a Japanese version of SourceForge.net. For developments that are not related to Japan, we recommend you to use SourceForge.net.