Problems with WebDataBinder and Set.Class
2012-03-13 00:45
387 查看
i am having trouble with binding my data from a form : I have two class
Of course at
finaly!!! there were no bug at all! i updated my spring jar from 3.0.5.RELEASE to 3.1.0.M1, and voila : somthing stopped working with webdatabinder and CustomCollectionEditor.
i just rollback to 3.0.5.RELEASE and everything is fine.
@Entity @Table(name = "ROLES") public class Role implements GenericDomain { private Long id; private String code; private String name; private Set<Privilege> privileges = new HashSet<Privilege>(0); public Role() {} /* getter and setter*/ @ManyToMany(cascade=CascadeType.ALL) @JoinTable(name = "ROLES_PRIVILEGES" , joinColumns = { @JoinColumn(name = "ROLE_ID") } , inverseJoinColumns = { @JoinColumn(name = "PRIVILEGE_ID") } ) public Set<Privilege> getPrivileges() { return this.privileges; } public void setPrivileges(Set<Privilege> privileges) { this.privileges = privileges; } /* overide of hascode, equals*/ }And
@Entity @Table(name = "PRIVILEGES") public class Privilege implements GenericDomain { private Long id; private String code; private Set<Role> roles = new HashSet<Role>(0); public Privilege() {} /* getter and setter*/ @ManyToMany(cascade=CascadeType.REFRESH, mappedBy="privileges") public Set<Role> getRoles() { return this.roles; } public void setRoles(Set<Role> roles) { this.roles = roles; } @Override public String toString(){ return this.getCode() + this.getComment(); } /*overide equals and hascode*/and in my controller i have :
@InitBinder public void initBinder(WebDataBinder binder) { binder.registerCustomEditor(Set.class, "privileges", new CustomCollectionEditor(Set.class) { @Override protected Object convertElement(Object element) { return (element == null)?null:privilegeService.getOne(Integer.parseInt((String)element)); } }); } @RequestMapping(value = "edit", method = RequestMethod.POST) public String saveOldRole( @ModelAttribute("role") Role role , BindingResult result , ModelMap model ) { validator.validate(role, result); if (result.hasErrors()){ logger.error(result.getAllErrors()); model.addAllAttributes(result.getModel()); return "/admin/role/edit"; } logger.info(role.getPrivileges()); Iterator p = role.getPrivileges().iterator(); while(p.hasNext()){ logger.info(p.next().getClass()); } roleService.saveOrUpdate(role); model.addAttribute("roles", roleService.getAll()); sessionStatus.setComplete(); return "redirect:/admin/role/list.do"; }and my debug is
role.RoleController:93 - [[MANAGE_USERS], [MANAGE_ROLES]] role.RoleController:96 - class java.util.LinkedHashSet role.RoleController:96 - class java.util.LinkedHashSet 22:29:44,915 ERROR tomcat-http--7 property.BasicPropertyAccessor:194 - IllegalArgumentException in class: com.stunaz.domain.Privilege, getter method of property: idI dont understand why at 96, the class type is
java.util.LinkedHashSet, i thought it should be Privileges. I dont understand why my
role.getPrivileges()is a Set of Set, it should be a Set of Privilege.
Of course at
saveOrUpdateam getting an error.
finaly!!! there were no bug at all! i updated my spring jar from 3.0.5.RELEASE to 3.1.0.M1, and voila : somthing stopped working with webdatabinder and CustomCollectionEditor.
i just rollback to 3.0.5.RELEASE and everything is fine.
相关文章推荐
- "_OBJC_CLASS_$_WKWebView", referenced from:"...and "linker command failed with exit code 1 (use -v "
- Python Programming with the Java(TM) Class Libraries: A Tutorial for Building Web and Enterprise App
- How To Quickly Set Up Ubuntu 8.04 loaded with Erlang, Mochiweb and Nginx
- yii 中文书-agile_web_application_development_with_yii1.1_and_php5
- Creating Web Applications in JavaScript with Express.js and ejs
- A simple of Using XML Data Source type and Querying a Web Service with Reporting Services 2008
- A Taste of AOP from Solving Problems with OOP and Design Patterns (Part III)
- A Taste of AOP from Solving Problems with OOP and Design Patterns (Part III) zz
- Improving Web App Performance With the Chrome DevTools Timeline and Profiles
- Reloading Java Classes 301: Classloaders in Web Development — Tomcat, GlassFish, OSGi, Tapestry 5 and so on Translation
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点
- Use the Profile class to store and set the UI culture
- python web with bottle and session (beaker)
- Developing Killer Web Apps with Dreamweaver MX and C#
- 创建Maven web项目时 出现 web.xml is missing and <failOnMissingWebXml> is set to true错误 pox.xml编译错误
- maven 的pom出现web.xml is missing and <failOnMissingWebXml> is set to true
- MDX Step by Step 读书笔记(四) - Working with Sets (使用集合) - Limiting Set and Auto-Exists
- maven pom.xml出现web.xml is missing and is set to true解决方案 2
- iOS多线程-SDWebImage简单介绍 1 设置imageView的图片 (内存缓存&磁盘缓存) 1 [cell.imageView sd_setImageWithURL:[NSURL URL
- web.xml is missing and <failOnMissingWebXml> is set to true