Springmvcカスタムコンバータ

1761 ワード

bean中
<mvc:annotation-driven conversion-service="conversionServiceFactoryBean" />
<bean id="conversionServiceFactoryBean" class="org.springframework.context.support.ConversionServiceFactoryBean">
    <property name="converters">
        <set>
            <ref bean="springMVCConver"/>
        </set>
    </property>
</bean>

トランスデューサ
@Component
public class SpringMVCConver implements Converter<String, User>{
/**
 * id-username-gender-email-birth
 */
@Override
    public User convert(String source) {
        User user = null;
        if(!"".equals(source) && source != null){
            String[] target = source.split("-");
            if(target!=null && target.length == 4){
                user = new User();
                user.setId(Integer.parseInt(target[0]));
                user.setUsername(target[1]);
                user.setGender(Integer.parseInt(target[2]));
                user.setEmail(target[3]);
                //user.setBirth(birth);
            }
        }
        return user;
    }
}

せいぎょそうち
@RequestMapping(value="/testConversionUser" , method = RequestMethod.POST)
public String testConversionUser(@RequestParam("user") User user){
    System.out.println(user+"..");
    return "success";
}

jsp
<form action="testConversionUser" method="post">
    user:<input type="text" name="user" value="[email protected]"/><br><br>
    <input type="submit" value="submit"/>
</form>