示例#1
0
  /*
   * This method will be called on form submission, handling POST request for
   * saving employee in database. It also validates the user input
   */
  @RequestMapping(
      value = {"/new"},
      method = RequestMethod.POST)
  public String saveEmployee(@Valid Employee employee, BindingResult result, ModelMap model) {

    if (result.hasErrors()) {
      return "registration";
    }

    /*
     * Preferred way to achieve uniqueness of field [ssn] should be
     * implementing custom @Unique annotation and applying it on field [ssn]
     * of Model class [Employee].
     *
     * Below mentioned peace of code [if block] is to demonstrate that you
     * can fill custom errors outside the validation framework as well while
     * still using internationalized messages.
     */
    if (!service.isEmployeeSsnUnique(employee.getId(), employee.getSsn())) {
      FieldError ssnError =
          new FieldError(
              "employee",
              "ssn",
              messageSource.getMessage(
                  "non.unique.ssn", new String[] {employee.getSsn()}, Locale.getDefault()));
      result.addError(ssnError);
      return "registration";
    }
    employee.setId(service.getNext().intValue());
    service.saveEmployee(employee);

    model.addAttribute("success", "Employee " + employee.getName() + " registered successfully");
    return "success";
  }
示例#2
0
  /*
   * This method will be called on form submission, handling POST request for
   * updating employee in database. It also validates the user input
   */
  @RequestMapping(
      value = {"/edit-{ssn}-employee"},
      method = RequestMethod.POST)
  public String updateEmployee(
      @Valid Employee employee, BindingResult result, ModelMap model, @PathVariable String ssn) {

    if (result.hasErrors()) {
      return "registration";
    }

    if (!service.isEmployeeSsnUnique(employee.getId(), employee.getSsn())) {
      FieldError ssnError =
          new FieldError(
              "employee",
              "ssn",
              messageSource.getMessage(
                  "non.unique.ssn", new String[] {employee.getSsn()}, Locale.getDefault()));
      result.addError(ssnError);
      return "registration";
    }

    service.updateEmployee(employee);

    model.addAttribute("success", "Employee " + employee.getName() + " updated successfully");
    return "success";
  }