Struts2のカスタムタイプコンバーター

カスタムタイプコンバーターは与えられた文字列の長さを保持するカスタム型への変換とすると次のようになる

package tutorial;

import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

public class MyCustomTypeConverter extends StrutsTypeConverter {
	@Override
	public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
		if ( arg1 == null || arg1.length == 0 ) {
			return null;
		}
		CustomType cm = new CustomType();
		cm.setValue(  arg1[0].length() );
		return cm;
	}

	@Override
	public String convertToString(Map arg0, Object arg1) {
		if ( arg1 != null && arg1 instanceof CustomType ) {
			CustomType cm = (CustomType)arg1;
			return "[" + cm.getValue() +"]";
		}
		return null;
	}

}

CustomTypeは次のようななんでもないクラス

package tutorial;

public class CustomType {
	int		value;

	/**
	 * valueを取得します。
	 * @return value
	 */
	public int getValue() {
	    return value;
	}

	/**
	 * valueを設定します。
	 * @param value value
	 */
	public void setValue(int value) {
	    this.value = value;
	}
	
	
}