【问题标题】:Spring Expression Language (SpEL): check empty string?Spring Expression Language (SpEL):检查空字符串?
【发布时间】:2019-06-10 13:08:09
【问题描述】:

使用 SpEL 检查字符串是否为空或为空的规范方法是什么? 我想达到与 Guava 的Strings.isNullOrEmpty(myString) 相同的结果。

我的候选人:

  1. "#myString.?length=0"

  2. "#myString = ''"

不确定是否有规范,并且文档非常模糊(https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#expressions-operators)

【问题讨论】:

    标签: java spring spring-boot guava spring-el


    【解决方案1】:

    根据最新文档,这是这样做的:

    不为空或为空#myString > ''

    null 或空#myString <= ''

    不为空或空白#myString?.trim() > ''

    null 或空白#myString?.trim() <= ''

    【讨论】:

    【解决方案2】:

    您可以在对象上调用任何 Java 方法,例如#myString.length()、#myString.isEmpty() 或 #myString.isBlank()。我想说,这将是检查字符串是空还是空白的规范方法。

    对于 null 或空:#myString == null || #myString.isEmpty()

    对于 null 或空白:#myString == null || #myString.isBlank()

    您可以使用以下方法进行测试:

    System.out.println(new SpelExpressionParser().parseExpression("#root?.isEmpty()").getValue("x")); // false
    System.out.println(new SpelExpressionParser().parseExpression("#root?.isEmpty()").getValue("")); // true
    System.out.println(new SpelExpressionParser().parseExpression("#root?.isEmpty()").getValue((Object) null)); // null
    System.out.println(new SpelExpressionParser().parseExpression("#root == null || #root.isEmpty()").getValue("x")); // false
    System.out.println(new SpelExpressionParser().parseExpression("#root == null || #root.isEmpty()").getValue("")); // true
    System.out.println(new SpelExpressionParser().parseExpression("#root == null || #root.isEmpty()").getValue((Object) null)); // true
    

    【讨论】:

      【解决方案3】:
         /*
          list=['a','b']
          list=[]
          list=""
         */
         ${empty list}//false
         ${empty list1}//true
         ${empty list2}//true
      

      【讨论】:

      • 我不认为这是 Java 或 SpEL。
      • 我建议您修改并更正此答案或完全删除它,因为这不是 OP 所要求的。
      • 我为 JSTL 方式编写了代码,现在我用 SpEL 更改了它
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-27
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      • 2023-04-11
      • 1970-01-01
      • 2018-02-17
      相关资源
      最近更新 更多