Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Spring 3.0 MVC binding Enums Case Sensitive
- @RequestMapping(method = RequestMethod.GET, value = "{product}")
- public ModelAndView getPage(@PathVariable Product product)
- Unable to convert value "home" from type 'java.lang.String' to type 'domain.model.product.Product'; nested exception is java.lang.IllegalArgumentException: No enum const class domain.model.product.Product.home
- public class ProductEnumConverter extends PropertyEditorSupport
- {
- @Override public void setAsText(final String text) throws IllegalArgumentException
- {
- setValue(Product.valueOf(WordUtils.capitalizeFully(text.trim())));
- }
- }
- <bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
- <property name="customEditors">
- <map>
- <entry key="domain.model.product.Product" value="domain.infrastructure.ProductEnumConverter"/>
- </map>
- </property>
- </bean>
- @InitBinder
- public void initBinder(WebDataBinder binder)
- {
- binder.registerCustomEditor(Product.class, new ProductEnumConverter());
- }
- @InitBinder
- public void initBinder(WebDataBinder binder) {
- binder.registerCustomEditor(Product.class,
- new CaseInsensitivePropertyEditor());
- }
- public class ProductEditor extends PropertyEditorSupport{
- @Override
- public void setAsText(final String text){
- setValue(Product.valueOf(text.toUpperCase()));
- }
- }
- @Override
- public void setAsText(final String text){
- Product product = null;
- for(final Product candidate : Product.values()){
- if(candidate.name().equalsIgnoreCase(text)){
- product = candidate;
- break;
- }
- }
- setValue(product);
- }
- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
- <property name="webBindingInitializer">
- <bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
- <property name="propertyEditorRegistrars">
- <list>
- <bean class="com.xyz.MyPropertyEditorRegistrar"/>
- </list>
- </property>
- </bean>
- </property>
- </bean>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement