はじめに

Wicket 日付の入力補助」で作ったアプリケーションに、入力検証を加える。

Validatorの作り方

package com.snail;

import java.util.HashMap;
import java.util.Map;

import org.apache.wicket.validation.IValidatable;
import org.apache.wicket.validation.validator.AbstractValidator;

public class NGWordValidator extends AbstractValidator {

  private static final long serialVersionUID = 7638140005191056302L;
  private static String[] NG_WORDS = { "ウザイ", "キモイ", "死ね" };
  private static String RESOURCE_KEY = "NGWordValidatior";
  private static String NG_WORD_KEY = "ngWord";

  @Override
  protected void onValidate(IValidatable validatable) {
    String str = validatable.getValue().toString();
    for (String ngWord : NG_WORDS) {
      if (str.matches(".*" + ngWord + ".*")) {
        Map<String,String> valMap = new HashMap<String,String>();
        valMap.put(NG_WORD_KEY,ngWord);
        
        error(validatable, RESOURCE_KEY,valMap);
        return;
      }
    }
  }
}

HomePage.java への適用

public class HomePage extends WebPage {
  ...
  
  public HomePage(final PageParameters parameters) {
    this(new DiaryVO());
  }
  
  public HomePage(final DiaryVO pDiary) {
    this.diary = pDiary;
  
    add(feedback);
  
    add(form);
  
    TextField txtSubject = new TextField("subject", 
        new PropertyModel(diary, DiaryVO.SUBJECT));
    txtSubject.setRequired(true);
    txtSubject.add(new NGWordValidator()); // <- ATTENTION PLEASE !
    form.add(txtSubject);
    ...
  }
}

TextField? に、Validator を add() するだけ

エラー文言の定義 (HomePage.properties)

動作イメージ

WicketValidator.png

アプリケーション共有のエラー文言の定義

FormValidator?


Java#Wicket


添付ファイル: fileWicketHomePageProperties.png 2813件 [詳細] fileWicketValidator.png 2904件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS   sitemap
Last-modified: 2008-03-20 (木) 21:43:37 (6105d)
Short-URL: http://at-sushi.com/pukiwiki/index.php?cmd=s&k=21c3028a88
ISBN10
ISBN13
9784061426061