• 在Jsp中使用EL表达式调用String类的matches方法的问题


    要做什么:匹配一个字符串,如果是小数点数字,就取整数;如果不是数字,就直接显示

    先看正确实现:  

    <c:set var="reg" value="d+.?d+" />
    <c:if test="${expPerResult.matches(reg)}">
       数字
       <fmt:parseNumber integerOnly="true" value="${expPerResult}" />
    </c:if>
    <c:if test="${!expPerResult.matches(reg)}">
      非数字
       ${expPerResult}
    </c:if>

    之前的错误写法:

    <c:if test="${expPerResult.matches('d+.?d+')}">  
      数字
      <fmt:parseNumber integerOnly="true" value="${expPerResult}" />
    </c:if>
    <c:if test="${!expPerResult.matches('d+.?d+')}">
      
    非数字
      ${expPerResult}
    </c:if>

    后台异常内容:

      java.lang.IllegalArgumentException: The expression [${expPerResult.matches('d+.?d+')}] is not valid. Within a quoted String only [], ['] and ["] may be escaped with [].

    总结:在使用el表达式调用String的matches方法时,最好将正则表达式作为变量传入,原因如异常所示:表达式内要避免""。

  • 相关阅读:
    CSS伪元素
    leetcode
    软件镜像下载
    VUE项目问题
    js定时操作
    div 禁止点击
    JS String 与 Object 转换
    实用类
    XML文件的应用
    Socket编程
  • 原文地址:https://www.cnblogs.com/HF-Made/p/11607123.html
Copyright © 2020-2023  润新知