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"