Package org.springframework.validation

Examples of org.springframework.validation.FieldError


   * @param errors the Spring errors object to register to
   */
  protected void processConstraintViolations(Set<ConstraintViolation<Object>> violations, Errors errors) {
    for (ConstraintViolation<Object> violation : violations) {
      String field = violation.getPropertyPath().toString();
      FieldError fieldError = errors.getFieldError(field);
      if (fieldError == null || !fieldError.isBindingFailure()) {
        try {
          ConstraintDescriptor<?> cd = violation.getConstraintDescriptor();
          String errorCode = cd.getAnnotation().annotationType().getSimpleName();
          Object[] errorArgs = getArgumentsForConstraint(errors.getObjectName(), field, cd);
          if (errors instanceof BindingResult) {
            // Can do custom FieldError registration with invalid value from ConstraintViolation,
            // as necessary for Hibernate Validator compatibility (non-indexed set path in field)
            BindingResult bindingResult = (BindingResult) errors;
            String nestedField = bindingResult.getNestedPath() + field;
            if ("".equals(nestedField)) {
              String[] errorCodes = bindingResult.resolveMessageCodes(errorCode);
              bindingResult.addError(new ObjectError(
                  errors.getObjectName(), errorCodes, errorArgs, violation.getMessage()));
            }
            else {
              Object invalidValue = violation.getInvalidValue();
              if (!"".equals(field) && (invalidValue == violation.getLeafBean() ||
                  (field.contains(".") && !field.contains("[]")))) {
                // Possibly a bean constraint with property path: retrieve the actual property value.
                // However, explicitly avoid this for "address[]" style paths that we can't handle.
                invalidValue = bindingResult.getRawFieldValue(field);
              }
              String[] errorCodes = bindingResult.resolveMessageCodes(errorCode, field);
              bindingResult.addError(new FieldError(
                  errors.getObjectName(), nestedField, invalidValue, false,
                  errorCodes, errorArgs, violation.getMessage()));
            }
          }
          else {
View Full Code Here


    assertTrue("Same global error in list", globalError.getDefaultMessage().equals(globalErrorInAllList.getDefaultMessage()));

    assertTrue("Correct field errors flag", errors.hasFieldErrors());
    assertTrue("Correct number of field errors", errors.getFieldErrorCount() == 3);
    assertTrue("Correct number of field errors in list", errors.getFieldErrors().size() == 3);
    FieldError fieldError = errors.getFieldError();
    assertTrue("Field error code not escaped", "NAME_EMPTY &".equals(fieldError.getCode()));
    assertTrue("Field value escaped", "empty &amp;".equals(errors.getFieldValue("name")));
    FieldError fieldErrorInList = errors.getFieldErrors().get(0);
    assertTrue("Same field error in list", fieldError.getDefaultMessage().equals(fieldErrorInList.getDefaultMessage()));

    assertTrue("Correct name errors flag", errors.hasFieldErrors("name"));
    assertTrue("Correct number of name errors", errors.getFieldErrorCount("name") == 1);
    assertTrue("Correct number of name errors in list", errors.getFieldErrors("name").size() == 1);
    FieldError nameError = errors.getFieldError("name");
    assertTrue("Name error message escaped", "message: &amp;".equals(nameError.getDefaultMessage()));
    assertTrue("Name error code not escaped", "NAME_EMPTY &".equals(nameError.getCode()));
    assertTrue("Name value escaped", "empty &amp;".equals(errors.getFieldValue("name")));
    FieldError nameErrorInList = errors.getFieldErrors("name").get(0);
    assertTrue("Same name error in list", nameError.getDefaultMessage().equals(nameErrorInList.getDefaultMessage()));

    assertTrue("Correct age errors flag", errors.hasFieldErrors("age"));
    assertTrue("Correct number of age errors", errors.getFieldErrorCount("age") == 2);
    assertTrue("Correct number of age errors in list", errors.getFieldErrors("age").size() == 2);
    FieldError ageError = errors.getFieldError("age");
    assertTrue("Age error message escaped", "message: &lt;tag&gt;".equals(ageError.getDefaultMessage()));
    assertTrue("Age error code not escaped", "AGE_NOT_SET <tag>".equals(ageError.getCode()));
    assertTrue("Age value not escaped", (new Integer(0)).equals(errors.getFieldValue("age")));
    FieldError ageErrorInList = errors.getFieldErrors("age").get(0);
    assertTrue("Same name error in list", ageError.getDefaultMessage().equals(ageErrorInList.getDefaultMessage()));
    FieldError ageError2 = errors.getFieldErrors("age").get(1);
    assertTrue("Age error 2 message escaped", "message: &lt;tag&gt;".equals(ageError2.getDefaultMessage()));
    assertTrue("Age error 2 code not escaped", "AGE_NOT_32 <tag>".equals(ageError2.getCode()));
  }
View Full Code Here

    validator.afterPropertiesSet();
    ValidPerson person = new ValidPerson();
    BeanPropertyBindingResult result = new BeanPropertyBindingResult(person, "person");
    validator.validate(person, result);
    assertEquals(2, result.getErrorCount());
    FieldError fieldError = result.getFieldError("name");
    assertEquals("name", fieldError.getField());
    List<String> errorCodes = Arrays.asList(fieldError.getCodes());
    assertEquals(4, errorCodes.size());
    assertTrue(errorCodes.contains("NotNull.person.name"));
    assertTrue(errorCodes.contains("NotNull.name"));
    assertTrue(errorCodes.contains("NotNull.java.lang.String"));
    assertTrue(errorCodes.contains("NotNull"));
    fieldError = result.getFieldError("address.street");
    assertEquals("address.street", fieldError.getField());
    errorCodes = Arrays.asList(fieldError.getCodes());
    assertEquals(5, errorCodes.size());
    assertTrue(errorCodes.contains("NotNull.person.address.street"));
    assertTrue(errorCodes.contains("NotNull.address.street"));
    assertTrue(errorCodes.contains("NotNull.street"));
    assertTrue(errorCodes.contains("NotNull.java.lang.String"));
View Full Code Here

    ValidPerson person = new ValidPerson();
    person.getAddressList().add(new ValidAddress());
    BeanPropertyBindingResult result = new BeanPropertyBindingResult(person, "person");
    validator.validate(person, result);
    assertEquals(3, result.getErrorCount());
    FieldError fieldError = result.getFieldError("name");
    assertEquals("name", fieldError.getField());
    fieldError = result.getFieldError("address.street");
    assertEquals("address.street", fieldError.getField());
    fieldError = result.getFieldError("addressList[0].street");
    assertEquals("addressList[0].street", fieldError.getField());
  }
View Full Code Here

    ValidPerson person = new ValidPerson();
    person.getAddressSet().add(new ValidAddress());
    BeanPropertyBindingResult result = new BeanPropertyBindingResult(person, "person");
    validator.validate(person, result);
    assertEquals(3, result.getErrorCount());
    FieldError fieldError = result.getFieldError("name");
    assertEquals("name", fieldError.getField());
    fieldError = result.getFieldError("address.street");
    assertEquals("address.street", fieldError.getField());
    fieldError = result.getFieldError("addressSet[].street");
    assertEquals("addressSet[].street", fieldError.getField());
  }
View Full Code Here

      return list;
    }

    @RequestMapping("/myPath.do")
    public String myHandle(@ModelAttribute("myCommand") TestBean tb, BindingResult errors, ModelMap model) {
      FieldError error = errors.getFieldError("age");
      assertNotNull("Must have field error for age property", error);
      assertEquals("value2", error.getRejectedValue());
      if (!model.containsKey("myKey")) {
        model.addAttribute("myKey", "myValue");
      }
      return "myView";
    }
View Full Code Here

      return list;
    }

    @RequestMapping("/myPath.do")
    public String myHandle(@ModelAttribute("myCommand") TestBean tb, BindingResult errors, ModelMap model) {
      FieldError error = errors.getFieldError("age");
      assertNotNull("Must have field error for age property", error);
      assertEquals("value2", error.getRejectedValue());
      if (!model.containsKey("myKey")) {
        model.addAttribute("myKey", "myValue");
      }
      return "myView";
    }
View Full Code Here

  public void validate(Object target, Errors errors) {
    Set<ConstraintViolation<Object>> result = this.targetValidator.validate(target);
    for (ConstraintViolation<Object> violation : result) {
      String field = violation.getPropertyPath().toString();
      FieldError fieldError = errors.getFieldError(field);
      if (fieldError == null || !fieldError.isBindingFailure()) {
        errors.rejectValue(field,
            violation.getConstraintDescriptor().getAnnotation().annotationType().getSimpleName(),
            getArgumentsForConstraint(errors.getObjectName(), field, violation.getConstraintDescriptor()),
            violation.getMessage());
      }
View Full Code Here

  private <T extends ObjectError> T escapeObjectError(T source) {
    if (source == null) {
      return null;
    }
    if (source instanceof FieldError) {
      FieldError fieldError = (FieldError) source;
      Object value = fieldError.getRejectedValue();
      if (value instanceof String) {
        value = HtmlUtils.htmlEscape((String) value);
      }
      return (T) new FieldError(
          fieldError.getObjectName(), fieldError.getField(), value,
          fieldError.isBindingFailure(), fieldError.getCodes(),
          fieldError.getArguments(), HtmlUtils.htmlEscape(fieldError.getDefaultMessage()));
    }
    else {
      return (T) new ObjectError(
          source.getObjectName(), source.getCodes(), source.getArguments(),
          HtmlUtils.htmlEscape(source.getDefaultMessage()));
View Full Code Here

  public void validate(Object target, Errors errors) {
    Set<ConstraintViolation<Object>> result = this.targetValidator.validate(target);
    for (ConstraintViolation<Object> violation : result) {
      String field = violation.getPropertyPath().toString();
      FieldError fieldError = errors.getFieldError(field);
      if (fieldError == null || !fieldError.isBindingFailure()) {
        try {
          errors.rejectValue(field,
              violation.getConstraintDescriptor().getAnnotation().annotationType().getSimpleName(),
              getArgumentsForConstraint(errors.getObjectName(), field, violation.getConstraintDescriptor()),
              violation.getMessage());
View Full Code Here

TOP

Related Classes of org.springframework.validation.FieldError

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.