[Wicket-ja-user 690] 独自Validatorで関連チェックをしたいでし

Back to archive index

ykich****@yahoo***** ykich****@yahoo*****
2013年 11月 22日 (金) 23:31:10 JST


はじめて、メールをさせて貰います、

関連確認は、formvalidatorで行えますが入力内容が沢山あるので入力時点でエラー表示がしたいです(wicket6を使用しています)


店舗、金額で入力を行うとエラー表示されますが、金額、店舗で行うとエラー表示されないので困って言います
(金額の独自Validatorを金額、店舗の順で選択してもチェックさせたい)

private final Form<Void> myForm = new Form<>("InputForm");

private final DropDownChoice<String> store = new DropDownChoice<String>("store", new Model<String>(),Arrays.asList("店舗A", "店舗B"));

private final DropDownChoice<String> amount = new DropDownChoice<String>("amount", new Model<String>(),Arrays.asList("100", "200", "300", "400", "500"));

ComponentFeedbackPanel amountFeedBack;




this.add(myForm);
myForm.add(store);
// 店舗別金額Overバリデータ
amount.add(new AmountOverValidator(amount, store)); 
// 金額フィードバックパネル
amountFeedBack = new ComponentFeedbackPanel("amountFeedBack", amount);
myForm.add(amount);
myForm.add(amountFeedBack);




store.add(new AjaxFormComponentUpdatingBehavior("onchange") {
  @Override
  protected void onUpdate(AjaxRequestTarget target) {
    //
  }
});

amount.add(new AjaxFormComponentUpdatingBehavior("onchange") {
  @Override
  protected void onUpdate(AjaxRequestTarget target) {
    // 
      target.add(amountFeedBack);
  }
  @Override 
  protected void onError(AjaxRequestTarget target, RuntimeException e) {
      super.onError(target, e);
      target.add(amountFeedBack);
  }
});


public class AmountOverValidator extends AbstractValidator<String> {
    private DropDownChoice<String> store;
    private DropDownChoice<String> amount;

    public  AmountOverValidator( DropDownChoice<String> amount,DropDownChoice<String> store){
        this.store = store;
        this.amount = amount;
    }

    @Override
    protected void onValidate(IValidatable<String> validatable) {
        // 入力値を取得
        String strStore = this.store.getConvertedInput();
        String strAmount = this.amount.getConvertedInput();

        if (strStore == null) {  strStore = store.getModelObject(); }
        if (strAmount == null) { strAmount = amount.getModelObject(); }

        if ((StringUtils.isEmpty(strStore)) || (StringUtils.isEmpty(strAmount))) {
        } else {
                  //店舗別の金額確認処理
                  //エラー時のとき
                  error(validatable, "AmountOverValidator");
            }
        }
}
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
Download 



Wicket-ja-user メーリングリストの案内
Back to archive index