【发布时间】:2011-03-08 04:19:57
【问题描述】:
我有一个用例,我想设置我在会话中保留并添加到 .我将“myModel”保留在 flowScope 中
现在我想设置对象 myModel 的 String 属性,如果它是空的,所以我想做这样的事情:
<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 那样知道函数“空”(例如检查空字符串)
在 spring 手册(6.5.9 Functions)中,我读到我可以注册自己的函数。这样我就可以注册一个 emptyString 函数并将其委托 StringUtils.isEmpty()
我该怎么做?这是正确的方法吗?我可以在 web-flow 手册中阅读如何隐式注册表达式解析器,但如何将函数实际添加到 StandardEvaluationContext 对我来说是个谜。
感谢任何帮助
【问题讨论】:
标签: java spring spring-webflow spring-el