use*_*071 12 java spring spring-el
我使用spring表达式语言有以下代码:
StandardEvaluationContext stdContext = new StandardEvaluationContext();
stdContext.setVariable("emp", filterInputData);
ExpressionParser parser = new SpelExpressionParser();
parser.parseExpression("#emp.?[name.toLowerCase().contains('Hari')]").getValue(stdContext);
Run Code Online (Sandbox Code Playgroud)
其中emp是bean的名称.这里的名称可以为null,并且在调用时name.toLowerCase()我得到一个nullpointer异常.如何处理此方案中的空值?我只需要调用toLowercase()非空值.
Gar*_*ell 24
"#emp.name != null ? #emp.name.toLowerCase().contains('hari') : null"
Run Code Online (Sandbox Code Playgroud)
要么
"#emp.name != null ? #emp.name.toLowerCase().contains('hari') : false"
Run Code Online (Sandbox Code Playgroud)
取决于缺少名称时想要回复的内容.
实际上,这个简短的形式也有效......
"#emp.name != null ? toLowerCase().contains('hari') : null"
Run Code Online (Sandbox Code Playgroud)
顺便说一下,在你原来的问题......
name.toLowerCase().contains('Hari')
Run Code Online (Sandbox Code Playgroud)
将永远不会返回true(H是大写).
或者,猫王是你的朋友......
Expression expression = new SpelExpressionParser().parseExpression("#emp.name?:'no name found'");
value = expression.getValue(context, String.class).toLowerCase();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23873 次 |
| 最近记录: |