独自のコンバータを実装する
独自のコンバータを実装する方法です。
画面と入出力する値を編集する処理を実装する部分です。
- 画面入力された値を○○に変換
- 画面出力時された値を○○に変換
といったことをしたい場合に利用します。
コードを名称にするとかで使えるかと考えています。
javax.faces.convert.Converterインタフェースを実装したクラスを作成します。
- サンプルと書く処理の内容は以下のとおりです。
package hoge; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; import javax.faces.convert.ConverterException; public class HogeConverter implements Converter { public Object getAsObject(FacesContext context, UIComponent component, String str) throws ConverterException { //input要素からのPOST時に処理される //Data型にしたり、文字を編集したり...etc } public String getAsString(FacesContext context, UIComponent component, Object object) throws ConverterException { //Responseの際に呼ばれる if (object == null) { return null; } //Data型を任意形式の文字列にしたり、金額編集したり..etc } }
- diconファイルに登録します。
<component name="hogeConverter" class="hoge.HogeConverter"> </component>
- HTML内で使用します。
<span m:value="#{dto.name}" m:converter="#{hogeConverter}">ほげねいむ</span>