diff --git a/spring-framework-reference/src/expressions.xml b/spring-framework-reference/src/expressions.xml
index bbfc8f8019d..299c3f51f15 100644
--- a/spring-framework-reference/src/expressions.xml
+++ b/spring-framework-reference/src/expressions.xml
@@ -84,6 +84,18 @@
Calling constructors
+
+
+ Bean references
+
+
+
+ Array construction
+
+
+
+ Inline lists
+
Ternary operator
@@ -563,7 +575,42 @@ parser.parseExpression("Officers['advisors'][0].PlaceOfBirth.Country").setValue(
+
+ Inline lists
+ Lists can be expressed directly in an expression using {} notation.
+
+
+
+// evaluates to a Java list containing the four numbers
+List numbers = (List) parser.parseExpression("{1,2,3,4}").getValue(context);
+
+List listOfLists = (List) parser.parseExpression("{{'a','b'},{'x','y'}}").getValue(context);
+
+ {} by itself means an empty list. For performance reasons, if the
+ list is itself entirely composed of fixed literals then a constant list is created
+ to represent the expression, rather than building a new list on each evaluation.
+
+
+
+ Array construction
+
+ Arrays can be built using the familiar Java syntax, optionally
+ supplying an initializer to have the array populated at construction time.
+
+
+ int[] numbers1 = (int[]) parser.parseExpression("new int[4]").getValue(context);
+
+// Array with initializer
+int[] numbers2 = (int[]) parser.parseExpression("new int[]{1,2,3}").getValue(context);
+
+// Multi dimensional array
+int[][] numbers3 = (int[][]) parser.parseExpression("new int[4][5]").getValue(context);
+
+ It is not currently allowed to supply an initializer when constructing
+ a multi-dimensional array.
+
+
Methods
@@ -858,6 +905,19 @@ String helloWorldReversed =
parser.parseExpression("#reverseString('hello')").getValue(context, String.class);
+
+ Bean references
+ If the evaluation context has been configured with a bean resolver it is possible to
+ lookup beans from an expression using the (@) symbol.
+
+ ExpressionParser parser = new SpelExpressionParser();
+StandardEvaluationContext context = new StandardEvaluationContext();
+context.setBeanResolver(new MyBeanResolver());
+
+// This will end up calling resolve(context,"foo") on MyBeanResolver during evaluation
+Object bean = parser.parseExpression("@foo").getValue(context);
+
+
Ternary Operator (If-Then-Else)