/** * Should rendering of this tag proceed at all? * <p>Only renders output when there are errors for the configured {@link #setPath path}. * @return {@code true} only when there are errors for the configured {@link #setPath path} */ @Override protected boolean shouldRender() throws JspException { try { return getBindStatus().isError(); } catch (IllegalStateException ex) { // Neither BindingResult nor target object available. return false; } }
/** * Exposes any bind status error messages under {@link #MESSAGES_ATTRIBUTE this key} * in the {@link PageContext#PAGE_SCOPE}. * <p>Only called if {@link #shouldRender()} returns {@code true}. * @see #removeAttributes() */ @Override protected void exposeAttributes() throws JspException { List<String> errorMessages = new ArrayList<>(); errorMessages.addAll(Arrays.asList(getBindStatus().getErrorMessages())); this.oldMessages = this.pageContext.getAttribute(MESSAGES_ATTRIBUTE, PageContext.PAGE_SCOPE); this.pageContext.setAttribute(MESSAGES_ATTRIBUTE, errorMessages, PageContext.PAGE_SCOPE); this.errorMessagesWereExposed = true; }
/** * Should rendering of this tag proceed at all? * <p>Only renders output when there are errors for the configured {@link #setPath path}. * @return {@code true} only when there are errors for the configured {@link #setPath path} */ @Override protected boolean shouldRender() throws JspException { try { return getBindStatus().isError(); } catch (IllegalStateException ex) { // Neither BindingResult nor target object available. return false; } }
/** * Exposes any bind status error messages under {@link #MESSAGES_ATTRIBUTE this key} * in the {@link PageContext#PAGE_SCOPE}. * <p>Only called if {@link #shouldRender()} returns {@code true}. * @see #removeAttributes() */ @Override protected void exposeAttributes() throws JspException { List<String> errorMessages = new ArrayList<>(); errorMessages.addAll(Arrays.asList(getBindStatus().getErrorMessages())); this.oldMessages = this.pageContext.getAttribute(MESSAGES_ATTRIBUTE, PageContext.PAGE_SCOPE); this.pageContext.setAttribute(MESSAGES_ATTRIBUTE, errorMessages, PageContext.PAGE_SCOPE); this.errorMessagesWereExposed = true; }
@Override protected void renderDefaultContent(TagWriter tagWriter) throws JspException { tagWriter.startTag(getElement()); writeDefaultAttributes(tagWriter); String delimiter = ObjectUtils.getDisplayString(evaluate("delimiter", getDelimiter())); String[] errorMessages = getBindStatus().getErrorMessages(); for (int i = 0; i < errorMessages.length; i++) { String errorMessage = errorMessages[i]; if (i > 0) { tagWriter.appendValue(delimiter); } tagWriter.appendValue(getDisplayString(errorMessage)); } tagWriter.endTag(); }
@Override protected void renderDefaultContent(TagWriter tagWriter) throws JspException { tagWriter.startTag(getElement()); writeDefaultAttributes(tagWriter); String delimiter = ObjectUtils.getDisplayString(evaluate("delimiter", getDelimiter())); String[] errorMessages = getBindStatus().getErrorMessages(); for (int i = 0; i < errorMessages.length; i++) { String errorMessage = errorMessages[i]; if (i > 0) { tagWriter.appendValue(delimiter); } tagWriter.appendValue(getDisplayString(errorMessage)); } tagWriter.endTag(); }