我有一个用例,我想设置我在会话中保留并添加到 . 我在 flowScope 中保留“myModel”
现在我想设置对象 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 那样知道函数“空”(例如检查空字符串)
在弹簧手册(6.5.9 函数)中,我读到我可以注册自己的函数。这样我就可以注册一个 emptyString 函数并将其委托 StringUtils.isEmpty()
我该怎么做?这是正确的方法吗?我可以在 web-flow 手册中阅读如何隐式注册表达式解析器,但如何将函数实际添加到 StandardEvaluationContext 对我来说是个谜。
任何帮助表示赞赏