准确使用Spring Expression Language

时间:2015-04-19 09:37:27

标签: java spring spring-mvc el

我正在尝试学习Spring,所以从here我得到了这个例子,

ExpressionParser parser = new SpelExpressionParser();

// evals to "Hello World"
String helloWorld = (String) parser.parseExpression("'Hello World'").getValue();

但我不明白它的确切用法,因为我可以更好地将其声明为

String helloWorld = "Hello World";

那么上面SpEL的确切用法是什么?

哪里可以更好地使用它?

2 个答案:

答案 0 :(得分:4)

特定的SpEL 无用。传递给解析器的表达式来自某些外部源(例如注释值或XML属性)时,它非常有用。关于EL的全面解释对于Stack Overflow而言过于宽泛,但我建议查看Thymeleaf以获取EL如何有用的示例。

(另请注意,使用getValue(String.class)代替投射会更好,因为它更安全,因为您可以利用自动类型转换。)

答案 1 :(得分:1)

Spring Expression Language主要用于JSP,Thymeleaf等视图层。您可以使用SpEL在视图层中轻松地操作java对象。如果要评估java层中的SpEL表达式,可以使用ExpressionParser来获得结果。

通常我们希望尽可能保持视图层的清洁(不想评估复杂的逻辑操作)。但有时必须进行少量操作。在那种情况下,SpEL变得很方便。