From 3f11fbafaaeffacddae227346550b25def791c46 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Thu, 31 Mar 2011 14:16:37 +0000 Subject: [PATCH] Predictable index position for BindingResult keys and parameter annotation convenience methods in MethodParameter --- .../validation/AbstractBindingResult.java | 8 ++++---- .../org/springframework/core/MethodParameter.java | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/org.springframework.context/src/main/java/org/springframework/validation/AbstractBindingResult.java b/org.springframework.context/src/main/java/org/springframework/validation/AbstractBindingResult.java index 2b9e4489937..1cf65266562 100644 --- a/org.springframework.context/src/main/java/org/springframework/validation/AbstractBindingResult.java +++ b/org.springframework.context/src/main/java/org/springframework/validation/AbstractBindingResult.java @@ -19,8 +19,8 @@ package org.springframework.validation; import java.beans.PropertyEditor; import java.io.Serializable; import java.util.Collections; -import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -270,11 +270,11 @@ public abstract class AbstractBindingResult extends AbstractErrors implements Bi * @see org.springframework.web.servlet.mvc.SimpleFormController */ public Map getModel() { - Map model = new HashMap(2); - // Errors instance, even if no errors. - model.put(MODEL_KEY_PREFIX + getObjectName(), this); + Map model = new LinkedHashMap(2); // Mapping from name to target object. model.put(getObjectName(), getTarget()); + // Errors instance, even if no errors. + model.put(MODEL_KEY_PREFIX + getObjectName(), this); return model; } diff --git a/org.springframework.core/src/main/java/org/springframework/core/MethodParameter.java b/org.springframework.core/src/main/java/org/springframework/core/MethodParameter.java index 21715160a69..30bd1fdbb07 100644 --- a/org.springframework.core/src/main/java/org/springframework/core/MethodParameter.java +++ b/org.springframework.core/src/main/java/org/springframework/core/MethodParameter.java @@ -278,6 +278,20 @@ public class MethodParameter { return null; } + /** + * Return true if the parameter has at least one annotation, false if it has none. + */ + public boolean hasParameterAnnotations() { + return getParameterAnnotations().length != 0; + } + + /** + * Return true if the parameter has the given annotation type, and false if it doesn't. + */ + public boolean hasParameterAnnotation(Class annotationType) { + return getParameterAnnotation(annotationType) != null; + } + /** * Initialize parameter name discovery for this method parameter. *

This method does not actually try to retrieve the parameter name at