2010-06-25 168 views
1

我有一个用例,我想要设置一个字段的值,并保存在会话中并添加到该字段中。我把“基于myModel”在flowScope在spring-webflow中使用SPEL测试空字符串2.1

现在我想设置对象基于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功能“空”不(如检查一个空字符串)

在春季手册(6.5.9函数)中我看到我可以注册自己的函数。这样,我可以注册一个emptyString函数并委托它StringUtils.isEmpty()

我该怎么做?这是正确的方法吗?我可以在web-flow手册中阅读如何隐式注册expressionParser,但是如何实际将该函数添加到StandardEvaluationContext中对我来说是个谜。

任何帮助表示赞赏

回答

3

您应该能够执行一个String对象的方法,所以尽量flowScope.myModel.name.isEmpty()flowScope.myModel.name.length() == 0

如果失败flowScope.myModel.name == ""将有同样的效果。

+0

谢谢,==“”非常明显:) – 2010-06-25 23:12:09

相关问题