中年プログラマーの息抜き

ブログをはじめました。気の向くままにプログラム関連ネタをメモしていきます。

JSF+Bean Validation を試しました

はじめに

・入力値チェックでBeanValidationを試しました。

環境

JSF+SPRING+MYBATIS+BeanValidation

説明

アノテーション指定で簡単です

(bean.java
    @NotNull(message="必須")
    @Size(min=1,max=10,message="文字数")
    @Pattern(regexp="^[0-9]*$", message="数字")
    @Email(message="メールアドレス")
    private String code;

(bean.xhtml
    <h:messages id="messages" styleClass="text-left"/>
    <input type="text" jsf:id="code" jsf:value="#{bean.code}" />
    <input type="submit" jsf:action="#{bean.submit}" value="送信" />

(web.xml
  <context-param>
     <param-name>javax.faces.validator.DISABLE_DEFAULT_BEAN_VALIDATOR</param-name>
     <param-value>false</param-value>
  </context-param>
  <context-param>
     <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
     <param-value>true</param-value>
  </context-param>

気づき

・いくつかのライブラリが必要で少しはまりました。入力値検証されない+エラーも出ない=>原因がよくわからんな・・・状態、、 ライブラリ参照で解決しました。
    hibernate-validator
    slf4j-api
    validation-api

・h:messagesでは「情報」「警告」「異常」「致命」「詳細」が設定可能
    infoClass="has-info"
    warnClass="has-warn"
    errorClass="has-error"
    fatalClass="has-fatal"
    showDetail="true"