2010-06-25 25 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