独自のコンバータを実装する

独自のコンバータを実装する方法です。

画面と入出力する値を編集する処理を実装する部分です。

  • 画面入力された値を○○に変換
  • 画面出力時された値を○○に変換

といったことをしたい場合に利用します。
 
コードを名称にするとかで使えるかと考えています。
 
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>