Advertisement
Guest User

Untitled

a guest
May 4th, 2016
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.74 KB | None | 0 0
  1. SEVERE: Servlet.service() for servlet [sdnext] in context with path [/sdnext] threw exception [Request processing failed; nested exception is org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 6 errors
  2. Field error in object 'employee' on field 'name': rejected value []; codes [valid.name.employee.name,valid.name.name,valid.name.java.lang.String,valid.name]; arguments []; default message [null]
  3. Field error in object 'employee' on field 'password': rejected value []; codes [valid.password.employee.password,valid.password.password,valid.password.java.lang.String,valid.password]; arguments []; default message [null]
  4. Field error in object 'employee' on field 'gender': rejected value [null]; codes [valid.gender.employee.gender,valid.gender.gender,valid.gender.java.lang.String,valid.gender]; arguments []; default message [null]
  5. Field error in object 'employee' on field 'salary': rejected value [null]; codes [valid.salary.employee.salary,valid.salary.salary,valid.salary.java.lang.Long,valid.salary]; arguments []; default message [null]
  6. Field error in object 'employee' on field 'tutor': rejected value []; codes [valid.tutor.employee.tutor,valid.tutor.tutor,valid.tutor.java.lang.String,valid.tutor]; arguments []; default message [null]
  7. Field error in object 'employee' on field 'courses': rejected value [null]; codes [valid.courses.employee.courses,valid.courses.courses,valid.courses.java.util.List,valid.courses]; arguments []; default message [null]] with root cause
  8. org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 6 errors
  9.  
  10. public class Employee {
  11. private int empId;
  12. private String name;
  13. private String password;
  14. private String gender;
  15. private Long salary;
  16. private int age;
  17. private List<String> courses;
  18. private String tutor;
  19. getters and setters()
  20. }
  21.  
  22. @Controller
  23.  
  24. public class EmployeeController {
  25.  
  26. @Autowired
  27. @Qualifier("formValidator")
  28. private Validator validator;
  29.  
  30. @InitBinder
  31. private void initBinder(WebDataBinder binder) {
  32. binder.setValidator(validator);
  33. }
  34.  
  35. @RequestMapping(value = "/employee", method = RequestMethod.GET)
  36. public ModelAndView employee() {
  37. List<String> courses = new ArrayList<String>();
  38. courses.add("Maths");
  39. courses.add("Physics");
  40. courses.add("Geometry");
  41. courses.add("Algebra");
  42. courses.add("Painting");
  43.  
  44. List<String> genders = new ArrayList<String>();
  45. genders.add("Male");
  46. genders.add("Female");
  47.  
  48. List<String> tutors = new ArrayList<String>();
  49. tutors.add("Mrs Smith");
  50. tutors.add("Mr Johnson");
  51. tutors.add("Mr Clarks");
  52.  
  53. // default bean name is command
  54. ModelAndView modelAndView = new ModelAndView("employeeForm", "command", new Employee());
  55. modelAndView.addObject("tutors", tutors);
  56. modelAndView.addObject("genders", genders);
  57. modelAndView.addObject("courses", courses);
  58.  
  59. return modelAndView;
  60. }
  61.  
  62. @RequestMapping(value = "/addEmployee", method = RequestMethod.POST)
  63. public String addEmployee(@Valid @ModelAttribute Employee employee, ModelMap model, BindingResult result) {
  64. if (result.hasErrors()) {
  65. return "employeeForm";
  66. }
  67. model.addAttribute("empId", employee.getEmpId());
  68. model.addAttribute("name", employee.getName());
  69. model.addAttribute("password", employee.getPassword());
  70. model.addAttribute("gender", employee.getGender());
  71. model.addAttribute("salary", employee.getSalary());
  72. model.addAttribute("age", employee.getAge());
  73. model.addAttribute("courses", employee.getCourses());
  74. model.addAttribute("tutor", employee.getTutor());
  75. return "employeeDetail";
  76. }
  77.  
  78. }
  79.  
  80. public class FormValidator implements Validator {
  81.  
  82.  
  83. public boolean supports(Class<?> paramClass) {
  84. return Employee.class.equals(paramClass);
  85. }
  86.  
  87. public void validate(Object obj, Errors errors) {
  88. try {
  89. Employee emp = (Employee) obj;
  90. ValidationUtils.rejectIfEmptyOrWhitespace(errors, "empId", "valid.empId");
  91. ValidationUtils.rejectIfEmptyOrWhitespace(errors, "name", "valid.name");
  92. ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", "valid.password");
  93. ValidationUtils.rejectIfEmptyOrWhitespace(errors, "gender", "valid.gender");
  94. ValidationUtils.rejectIfEmptyOrWhitespace(errors, "salary", "valid.salary");
  95. ValidationUtils.rejectIfEmptyOrWhitespace(errors, "age", "valid.age");
  96. ValidationUtils.rejectIfEmptyOrWhitespace(errors, "tutor", "valid.tutor");
  97. List<String> courses = emp.getCourses();
  98. if (courses == null || courses.size() < 2) {
  99. errors.rejectValue("courses", "valid.courses");
  100. }
  101. } catch (Exception e) {
  102. e.printStackTrace();
  103. }
  104. }
  105. }
  106.  
  107. <!-- Enable annotation driven controllers, validation etc... -->
  108. <mvc:annotation-driven></mvc:annotation-driven>
  109.  
  110. <context:component-scan base-package="com.bits.emp.controller"></context:component-scan>
  111. <bean id="messageSource"
  112. class="org.springframework.context.support.ResourceBundleMessageSource">
  113. <property name="basename" value="validation" />
  114. </bean>
  115.  
  116. <bean id="formValidator" class="com.bits.emp.validator.FormValidator" />
  117.  
  118.  
  119. <bean id="viewResolver"
  120. class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  121. <property name="prefix" value="/WEB-INF/views/"></property>
  122. <property name="suffix" value=".jsp"></property>
  123. </bean>
  124.  
  125. <form:form method="POST" action="/sdnext/addEmployee">
  126. <table>
  127. <tr>
  128. <td width="127"><form:label path="empId">Employee Id:</form:label></td>
  129. <td width="102"><form:input path="empId" /></td>
  130. <td><form:errors path="empId" cssStyle="color: #ff0000;" /></td>
  131.  
  132. </tr>
  133. <tr>
  134. <td><form:label path="name">Employee Name:</form:label></td>
  135. <td><form:input path="name" /></td>
  136. <td><form:errors path="name" cssStyle="color: #ff0000;" /></td>
  137.  
  138. </tr>
  139. <tr>
  140. <td><form:label path="password">Password :</form:label></td>
  141. <td><form:password path="password" showPassword="true" /></td>
  142. <td><form:errors path="password" cssStyle="color: #ff0000;" /></td>
  143.  
  144. </tr>
  145. <tr>
  146. <td><form:label path="gender">Gender :</form:label></td>
  147. <td><form:radiobuttons path="gender" items="${genders}" /></td>
  148. <td><form:errors path="gender" cssStyle="color: #ff0000;" /></td>
  149.  
  150. </tr>
  151. <tr>
  152. <td><form:label path="salary">Employee Salary:</form:label></td>
  153. <td><form:input path="salary" /></td>
  154. <td><form:errors path="salary" cssStyle="color: #ff0000;" /></td>
  155.  
  156. </tr>
  157. <tr>
  158. <td><form:label path="age">Employee Age:</form:label></td>
  159. <td><form:input path="age" /></td>
  160. <td><form:errors path="age" cssStyle="color: #ff0000;" /></td>
  161.  
  162. </tr>
  163. <tr>
  164. <td><form:label path="courses">Courses:</form:label></td>
  165. <td><form:checkboxes path="courses" items="${courses}" /></td>
  166. <td><form:errors path="courses" cssStyle="color: #ff0000;" /></td>
  167.  
  168. </tr>
  169. <tr>
  170. <td>Please select your tutor:</td>
  171. <td><form:select path="tutor">
  172. <form:option value="" label="...." />
  173. <form:options items="${tutors}" />
  174. </form:select></td>
  175. <td><form:errors path="tutor" cssStyle="color: #ff0000;" /></td>
  176. </tr>
  177.  
  178. <tr>
  179. <td colspan="2"><input type="submit" value="Submit" /></td>
  180. </tr>
  181. </table>
  182. </form:form>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement