@Override public void reject(String errorCode, String defaultMessage) { this.source.reject(errorCode, defaultMessage); }
@Override public void validate(@Nullable Object obj, Errors errors) { TestBean tb = (TestBean) obj; if (tb.getAge() < 32) { errors.rejectValue("age", "TOO_YOUNG", "simply too young"); } if (tb.getAge() % 2 == 0) { errors.rejectValue("age", "AGE_NOT_ODD", "your age isn't odd"); } if (tb.getName() == null || !tb.getName().equals("Rod")) { errors.rejectValue("name", "NOT_ROD", "are you sure you're not Rod?"); } if (tb.getTouchy() == null || !tb.getTouchy().equals(tb.getName())) { errors.reject("NAME_TOUCHY_MISMATCH", "name and touchy do not match"); } if (tb.getAge() == 0) { errors.reject("GENERAL_ERROR", new String[] {"arg"}, "msg"); } } }
@Test public void specificPathMatchesSpecificFieldOnly() throws Exception { this.tag.setPath("name"); Errors errors = new BeanPropertyBindingResult(new TestBean(), "COMMAND_NAME"); errors.reject("some.code", "object error"); errors.rejectValue("name", "some.code", "field error"); exposeBindingResult(errors); this.tag.doStartTag(); assertNotNull(getPageContext().getAttribute(ErrorsTag.MESSAGES_ATTRIBUTE)); this.tag.doEndTag(); String output = getOutput(); assertTrue(output.contains("id=\"name.errors\"")); assertFalse(output.contains("object error")); assertTrue(output.contains("field error")); }
@Override public void reject(String errorCode) { this.source.reject(errorCode); }
@Test public void starMatchesAllErrors() throws Exception { this.tag.setPath("*"); Errors errors = new BeanPropertyBindingResult(new TestBean(), "COMMAND_NAME"); errors.reject("some.code", "object error"); errors.rejectValue("name", "some.code", "field error"); exposeBindingResult(errors); this.tag.doStartTag(); assertNotNull(getPageContext().getAttribute(ErrorsTag.MESSAGES_ATTRIBUTE)); this.tag.doEndTag(); String output = getOutput(); assertTrue(output.contains("id=\"testBean.errors\"")); assertTrue(output.contains("object error")); assertTrue(output.contains("field error")); }
@Override public void reject(String errorCode, @Nullable Object[] errorArgs, @Nullable String defaultMessage) { this.source.reject(errorCode, errorArgs, defaultMessage); }
/** * https://jira.spring.io/browse/SPR-4005 */ @Test public void omittedPathMatchesObjectErrorsOnly() throws Exception { this.tag.setPath(null); Errors errors = new BeanPropertyBindingResult(new TestBean(), "COMMAND_NAME"); errors.reject("some.code", "object error"); errors.rejectValue("name", "some.code", "field error"); exposeBindingResult(errors); this.tag.doStartTag(); assertNotNull(getPageContext().getAttribute(ErrorsTag.MESSAGES_ATTRIBUTE)); this.tag.doEndTag(); String output = getOutput(); assertTrue(output.contains("id=\"testBean.errors\"")); assertTrue(output.contains("object error")); assertFalse(output.contains("field error")); }
@Override public void reject(String errorCode, String defaultMessage) { this.source.reject(errorCode, defaultMessage); }
@Override public void validate(Object target, Errors errors) { String value = (String) target; if ("invalidValue".equals(value)) { errors.reject("invalid value"); } } };
@Override public void validate(@Nullable Object target, Errors errors) { errors.reject("error"); } }
@Override public void validate(Object target, Errors errors) { String value = (String) target; if ("failure".equals(value)) { errors.reject("not a valid value"); } } });
@Override public void validate(@Nullable Object target, Errors errors) { errors.reject("invalid"); } @Override
@Override public void validate(@Nullable Object target, Errors errors) { String value = (String) target; if (invalidValue.equals(value)) { errors.reject("invalid value '"+invalidValue+"'"); } } }
@Override public void validate(@Nullable Object target, Errors errors) { String value = (String) target; if (invalidValue.equals(value)) { errors.reject("not a valid value"); } } };
@Override public void validate(@Nullable Object target, Errors errors) { String value = (String) target; if ("failValidation".equals(value)) { errors.reject("TEST: expected invalid value"); } } }
@RequestMapping("/myPath") public void handle(@ModelAttribute TestBean testBean, Errors errors, @ModelAttribute TestPrincipal modelPrinc, OtherPrincipal requestPrinc, Writer writer) throws IOException { assertNull(testBean); assertNotNull(modelPrinc); assertNotNull(requestPrinc); assertFalse(errors.hasErrors()); errors.reject("myCode"); writer.write("myView"); } }
@Test public void bindErrorsTagWithErrors() throws JspException { PageContext pc = createPageContext(); Errors errors = new ServletRequestDataBinder(new TestBean(), "tb").getBindingResult(); errors.reject("test", null, "test"); pc.getRequest().setAttribute(BindingResult.MODEL_KEY_PREFIX + "tb", errors); BindErrorsTag tag = new BindErrorsTag(); tag.setPageContext(pc); tag.setName("tb"); assertTrue("Correct doStartTag return value", tag.doStartTag() == Tag.EVAL_BODY_INCLUDE); assertTrue("Has errors variable", pc.getAttribute(BindErrorsTag.ERRORS_VARIABLE_NAME, PageContext.REQUEST_SCOPE) == errors); }
PageContext pc = createPageContext(); Errors errors = new ServletRequestDataBinder(new TestBean(), "tb").getBindingResult(); errors.reject(null, "message1"); pc.getRequest().setAttribute(BindingResult.MODEL_KEY_PREFIX + "tb", errors);
PageContext pc = createPageContext(); Errors errors = new ServletRequestDataBinder(new TestBean(), "tb").getBindingResult(); errors.reject("code1", "message1"); pc.getRequest().setAttribute(BindingResult.MODEL_KEY_PREFIX + "tb", errors);
PageContext pc = createPageContext(); Errors errors = new ServletRequestDataBinder(new TestBean(), "tb").getBindingResult(); errors.reject("code1"); pc.getRequest().setAttribute(BindingResult.MODEL_KEY_PREFIX + "tb", errors);