public boolean test(Message message) { return message.getSeverity() == Severity.ERROR && message.getSource() instanceof String && ((String) message.getSource()).startsWith(fieldPrefix); } }
private MessageContext createMessageContext(MessageSource messageSource) { StateManageableMessageContext messageContext = new DefaultMessageContext(messageSource); Serializable messagesMemento = (Serializable) getFlashScope().extract("messagesMemento"); if (messagesMemento != null) { messageContext.restoreMessages(messagesMemento); } return messageContext; }
/** * Creates a new mock request context with the provided flow execution context. To add request parameters to this * request, use the {@link #putRequestParameter(String, String)} method. * @param flowExecutionContext the flow execution context */ public MockRequestContext(FlowExecutionContext flowExecutionContext) { this.flowExecutionContext = flowExecutionContext; this.externalContext = new MockExternalContext(); this.messageContext = new DefaultMessageContext(); }
protected MessageResolver createMessageResolver(MappingResult error) { String model = getModelExpression().getExpressionString(); String field = error.getMapping().getTargetExpression().getExpressionString(); Class<?> fieldType = error.getMapping().getTargetExpression().getValueType(getModelObject()); String[] messageCodes = messageCodesResolver.resolveMessageCodes(error.getCode(), model, field, fieldType); return new MessageBuilder().error().source(field).codes(messageCodes).resolvableArg(field) .defaultText(error.getCode() + " on " + field).build(); }
private void addErrorMessages(MappingResults results) { List<MappingResult> errors = results.getResults(MAPPING_ERROR); for (MappingResult error : errors) { requestContext.getMessageContext().addMessage(createMessageResolver(error)); } }
public List<ObjectError> getAllErrors() { return toErrors(messageContext.getMessagesByCriteria(ERRORS_ANY_SOURCE), ALL_ERRORS); }
public ObjectError get(String objectName, Message message) { ObjectError error = FIELD_ERRORS.get(objectName, message); if (error == null) { error = new ObjectError(objectName, message.getText()); } return error; } };
public boolean hasFlowEvent() { return userEventProcessed && !requestContext.getMessageContext().hasErrorMessages(); }
private boolean invokeDefaultValidateMethod(Object model) { // preferred Method validateMethod = ReflectionUtils.findMethod(model.getClass(), "validate", ValidationContext.class); if (validateMethod != null) { if (logger.isDebugEnabled()) { logger.debug("Invoking default model validation method 'validate(ValidationContext)'"); } ReflectionUtils.invokeMethod(validateMethod, model, new DefaultValidationContext(requestContext, eventId, mappingResults)); return true; } // mvc 2 compatibility only validateMethod = ReflectionUtils.findMethod(model.getClass(), "validate", Errors.class); if (validateMethod != null) { if (logger.isDebugEnabled()) { logger.debug("Invoking default model validation method 'validate(Errors)'"); } MessageContextErrors errors = new MessageContextErrors(requestContext.getMessageContext(), modelName, model, expressionParser, messageCodesResolver, mappingResults); ReflectionUtils.invokeMethod(validateMethod, model, errors); return true; } return false; }
private void saveFlashMessages(RequestContext context) { StateManageableMessageContext messageContext = (StateManageableMessageContext) context.getMessageContext(); Serializable messagesMemento = messageContext.createMessagesMemento(); getFlashScope().put("messagesMemento", messagesMemento); }
private void clearFlash(RequestContext context) { context.getFlashScope().clear(); context.getMessageContext().clearMessages(); }
void start(Flow flow, MutableAttributeMap<?> input, RequestControlContext context) { listeners.fireSessionCreating(context, flow); FlowSessionImpl session = activateSession(flow); if (session.isRoot()) { status = FlowExecutionStatus.ACTIVE; } if (input == null) { input = new LocalAttributeMap<>(); } if (hasEmbeddedModeAttribute(input)) { session.setEmbeddedMode(); } StateManageableMessageContext messageContext = (StateManageableMessageContext) context.getMessageContext(); messageContext.setMessageSource(flow.getApplicationContext()); listeners.fireSessionStarting(context, session, input); flow.start(context, input); listeners.fireSessionStarted(context, session); }
public boolean test(Message message) { return message.getSeverity() == Severity.ERROR && field.equals(message.getSource()); } }
public List<ObjectError> getGlobalErrors() { return toErrors(messageContext.getMessagesByCriteria(ERRORS_WITHOUT_FIELD_SOURCE), ALL_ERRORS); }
/** * Convenience constructor that creates a new mock request context with the following defaults: * <ul> * <li>A mock flow execution context with a active session of flow "mockFlow" in state "mockState". * <li>A mock external context with the provided parameters set. * </ul> */ public MockRequestContext(ParameterMap requestParameterMap) { this.flowExecutionContext = new MockFlowExecutionContext(); this.externalContext = new MockExternalContext(requestParameterMap); this.messageContext = new DefaultMessageContext(); }
private boolean invokeValidateMethodForCurrentState(Object model) { String methodName = "validate" + StringUtils.capitalize(requestContext.getCurrentState().getId()); // preferred Method validateMethod = ReflectionUtils.findMethod(model.getClass(), methodName, ValidationContext.class); if (validateMethod != null) { if (logger.isDebugEnabled()) { logger.debug("Invoking current state model validation method '" + methodName + "(ValidationContext)'"); } ReflectionUtils.invokeMethod(validateMethod, model, new DefaultValidationContext(requestContext, eventId, mappingResults)); return true; } // web flow 2.0.3 or < compatibility only validateMethod = ReflectionUtils.findMethod(model.getClass(), methodName, MessageContext.class); if (validateMethod != null) { ReflectionUtils.invokeMethod(validateMethod, model, requestContext.getMessageContext()); return true; } // mvc 2 compatibility only validateMethod = ReflectionUtils.findMethod(model.getClass(), methodName, Errors.class); if (validateMethod != null) { MessageContextErrors errors = new MessageContextErrors(requestContext.getMessageContext(), modelName, model, expressionParser, messageCodesResolver, mappingResults); if (logger.isDebugEnabled()) { logger.debug("Invoking current state model validation method '" + methodName + "(Errors)'"); } ReflectionUtils.invokeMethod(validateMethod, model, errors); return true; } return false; }
public List<FieldError> getFieldErrors() { return toErrors(messageContext.getMessagesByCriteria(ERRORS_FIELD_SOURCE), FIELD_ERRORS); }
MessageContextErrors errors = new MessageContextErrors(requestContext.getMessageContext(), modelName, model, expressionParser, messageCodesResolver, mappingResults); + ".validate(" + ClassUtils.getShortName(model.getClass()) + ", Errors)'"); MessageContextErrors errors = new MessageContextErrors(requestContext.getMessageContext(), modelName, model, expressionParser, messageCodesResolver, mappingResults); ReflectionUtils.invokeMethod(validateMethod, validator, model, errors);
public List<FieldError> getFieldErrors(String field) { field = fixedField(field); MessageCriteria messageCriteria; if (field.endsWith("*")) { String prefix = field.substring(0, field.length() - 1); messageCriteria = new FieldPrefixErrorMessage(prefix); } else { messageCriteria = new FieldErrorMessage(field); } return toErrors(messageContext.getMessagesByCriteria(messageCriteria), FIELD_ERRORS); }
+ ClassUtils.getShortName(model.getClass()) + ", Errors)'"); MessageContextErrors errors = new MessageContextErrors(requestContext.getMessageContext(), modelName, model, expressionParser, messageCodesResolver, mappingResults); ReflectionUtils.invokeMethod(validateMethod, validator, model, errors);