【问题标题】:testing for empty string with SPEL in spring-webflow 2.1在 spring-webflow 2.1 中使用 SPEL 测试空字符串
【发布时间】: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


    【解决方案1】:

    你应该能够在 String 对象上执行方法,所以试试flowScope.myModel.name.isEmpty()flowScope.myModel.name.length() == 0

    如果失败flowScope.myModel.name == "" 将产生相同的效果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-11
      • 2012-09-26
      • 2018-02-17
      • 1970-01-01
      • 2012-03-30
      • 1970-01-01
      相关资源
      最近更新 更多