Spring4.2 下载官网文档中给的代码:
ExpressionParser parser = new SpelExpressionParser();
Expression exp = parser.parseExpression("''Hello World''");
String message = (String) exp.getValue();
测试代码:
public static void main(String[] args) {
ExpressionParser parser = new SpelExpressionParser();
Expression exp = parser.parseExpression("''Hello World''");
System.out.println(exp.getValue(String.class));
}
运行抛错:
Exception in thread "main" org.springframework.expression.spel.SpelParseException: EL1041E:(pos 2): After parsing a valid expression, there is still more data in the expression: 'Hello'
at org.springframework.expression.spel.standard.InternalSpelExpressionParser.doParseExpression(InternalSpelExpressionParser.java:129)
at org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:60)
at org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:32)
at org.springframework.expression.common.TemplateAwareExpressionParser.parseExpression(TemplateAwareExpressionParser.java:76)
at org.springframework.expression.common.TemplateAwareExpressionParser.parseExpression(TemplateAwareExpressionParser.java:62)
at com.mxsm.spring.spel.SpringSpel1.main(SpringSpel1.java:20)
查看在线的Spring文档发现
"''Hello World''"(下载的文档)在线文档"'Hello World'"
把字符串替换下就能正常运行了!
这个问题不知道是不是Spring4.2 离线文档有问题。反正我下载的离线文档是这样一个的。