我有一个想要设置字段的值的用例,该字段保留在会话中,并已添加到。我将'myModel‘保存在flowScope中
现在我想设置一个myModel对象的字符串属性,如果它是空的,所以我想这样做:
<on-render>
<evaluate expression="if empty(flowScope.myModel.name))
flowScope.myModel.name = myModel.suggestName()" />
</on-render>其中suggestName()是myModel类的实例方法,它返回一个字符串SPEL在计算表达式时告诉我以下内容:
EL1041E:(pos 3): After parsing a valid expression,
there is still more data in the expression: 'empty'所以我猜SPEL不像标准EL那样知道' empty‘函数(例如,检查空字符串)
在spring手册(6.5.9函数)中,我读到我可以注册自己的函数。这样我就可以注册一个emptyString函数并将其委托给StringUtils.isEmpty()
我该怎么做呢?这是正确的方法吗?我可以在web-flow手册中读到如何隐式注册expressionParser,但如何在StandardEvaluationContext中实际添加函数对我来说是一个谜。
任何帮助我们都将不胜感激
发布于 2010-06-25 18:16:19
您应该能够在String对象上执行方法,因此尝试使用flowScope.myModel.name.isEmpty()或flowScope.myModel.name.length() == 0
如果失败了,flowScope.myModel.name == ""也会有同样的效果。
https://stackoverflow.com/questions/3116390
复制相似问题