Spring MVC中的属性转换Converter接口的一点疑惑!

Catelyn 发布于 2013/11/15 15:12
阅读 2K+
收藏 1

在浏览器提交数据时候,经常会碰到提交一组checkbox,比如我有一个User对象,User对象有一个属性是他的角色Role,由于一个用户对应多个角色,所以这里有两种设计:

1,就是把这个Role属性设置为String,将他所具有的的Role id拼接起来,eg:"1,2,3"

2,把这些Role id放进Set集合中

之前写过一个字符串拼接的Converter,如下:

public class StringByteConverter implements Converter<String[],String>{
	@Override
	public String convert(String[] source) {
		// TODO Auto-generated method stub
		return Joiner.on(',').join(source);
	}
}
由于为了兼容以前的,现在我还想写一个将String[]转换为Set的Converter,不知道这二者可以一起存在不,就是说如何对他们的使用时机进行细粒度区分。比如某个字段是String[]我需要转换为String,而另一个我想转为Set。如果不可以,请大神提供下PropertyEditor或者Formatter的做法!

还有就是这个Converter是配置在servlet-context.xml中

<mvc:annotation-driven content-negotiation-manager="contentNegotiationManager" conversion-service="conversionService">
。。。
</mvc:annotation-driven>
<bean id="conversionService"  class="org.springframework.format.support.FormattingConversionServiceFactoryBean">  
  		<property name="converters">  
		    <list>  
		        <bean class="cn.com.blossomframework.services.util.StringByteConverter" />  
		    </list>  
		</property> 
</bean>
也就是说他是影响所有Controller的,可不可以只影响特定的Controller。


加载中
返回顶部
顶部