diff --git a/spring-binding/src/main/java/org/springframework/binding/expression/ognl/OgnlExpression.java b/spring-binding/src/main/java/org/springframework/binding/expression/ognl/OgnlExpression.java
index 46771f46..5af781c7 100644
--- a/spring-binding/src/main/java/org/springframework/binding/expression/ognl/OgnlExpression.java
+++ b/spring-binding/src/main/java/org/springframework/binding/expression/ognl/OgnlExpression.java
@@ -23,6 +23,8 @@ import java.util.Map;
import ognl.Ognl;
import ognl.OgnlException;
+import org.springframework.beans.BeanWrapperImpl;
+import org.springframework.beans.BeansException;
import org.springframework.binding.expression.EvaluationAttempt;
import org.springframework.binding.expression.EvaluationException;
import org.springframework.binding.expression.Expression;
@@ -105,13 +107,8 @@ class OgnlExpression implements Expression {
public Class getValueType(Object context) {
try {
- if (Ognl.isSimpleProperty(expression)) {
- // TODO
- throw new UnsupportedOperationException("Not yet implemented - in progress");
- } else {
- return null;
- }
- } catch (OgnlException e) {
+ return new BeanWrapperImpl(context).getPropertyDescriptor(expressionString).getPropertyType();
+ } catch (BeansException e) {
throw new EvaluationException(new EvaluationAttempt(this, context), e);
}
}
diff --git a/spring-binding/src/test/java/org/springframework/binding/expression/ognl/OgnlExpressionParserTests.java b/spring-binding/src/test/java/org/springframework/binding/expression/ognl/OgnlExpressionParserTests.java
index 28c778aa..781388e2 100644
--- a/spring-binding/src/test/java/org/springframework/binding/expression/ognl/OgnlExpressionParserTests.java
+++ b/spring-binding/src/test/java/org/springframework/binding/expression/ognl/OgnlExpressionParserTests.java
@@ -123,7 +123,9 @@ public class OgnlExpressionParserTests extends TestCase {
// maps
parser.parseExpression("#{ 'foo' : 'foo value', 'bar' : 'bar value' }", null);
- parser.parseExpression("${#{ 'foo' : 'foo value', 'bar' : 'bar value' }}", new FluentParserContext().template());
+ parser
+ .parseExpression("${#{ 'foo' : 'foo value', 'bar' : 'bar value' }}", new FluentParserContext()
+ .template());
parser.parseExpression("#@java.util.LinkedHashMap@{ 'foo' : 'foo value', 'bar' : 'bar value' }", null);
parser.parseExpression("${#@java.util.LinkedHashMap@{ 'foo' : 'foo value', 'bar' : 'bar value' }}",
new FluentParserContext().template());
@@ -135,22 +137,28 @@ public class OgnlExpressionParserTests extends TestCase {
}
public void testVariables() {
- Expression exp = parser.parseExpression("#var", new FluentParserContext().variable(new ExpressionVariable("var",
- "flag")));
+ Expression exp = parser.parseExpression("#var", new FluentParserContext().variable(new ExpressionVariable(
+ "var", "flag")));
assertEquals(false, ((Boolean) exp.getValue(bean)).booleanValue());
}
public void testVariablesWithCoersion() {
- Expression exp = parser.parseExpression("#var", new FluentParserContext().variable(new ExpressionVariable("var",
- "number", new FluentParserContext().expectResult(Long.class))));
+ Expression exp = parser.parseExpression("#var", new FluentParserContext().variable(new ExpressionVariable(
+ "var", "number", new FluentParserContext().expectResult(Long.class))));
assertEquals(new Long(0), exp.getValue(bean));
}
public void testNestedVariablesWithTemplates() {
- Expression exp = parser.parseExpression("#var", new FluentParserContext()
- .variable(new ExpressionVariable("var", "${flag}${#var}", new FluentParserContext().template().variable(
+ Expression exp = parser.parseExpression("#var", new FluentParserContext().variable(new ExpressionVariable(
+ "var", "${flag}${#var}", new FluentParserContext().template().variable(
new ExpressionVariable("var", "number")))));
assertEquals("false0", exp.getValue(bean));
}
+ public void testGetValueType() {
+ String exp = "flag";
+ Expression e = parser.parseExpression(exp, null);
+ assertEquals(boolean.class, e.getValueType(bean));
+ }
+
}
\ No newline at end of file
diff --git a/spring-webflow-samples/booking-faces/ivy.xml b/spring-webflow-samples/booking-faces/ivy.xml
index 2a7e0f12..bac2d1ab 100755
--- a/spring-webflow-samples/booking-faces/ivy.xml
+++ b/spring-webflow-samples/booking-faces/ivy.xml
@@ -26,6 +26,7 @@
+
@@ -33,20 +34,23 @@
+
-
-
-
+
+
+
-
+
+
+
diff --git a/spring-webflow-samples/booking-mvc/ivy.xml b/spring-webflow-samples/booking-mvc/ivy.xml
index 6076b673..c9ad158b 100755
--- a/spring-webflow-samples/booking-mvc/ivy.xml
+++ b/spring-webflow-samples/booking-mvc/ivy.xml
@@ -25,26 +25,35 @@
+
+
+
+
+
+
-
+
-
-
-
+
+
+
+
+
+