码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2019-09-29 12:49:00      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:int   within   integer   内容   pre   lang   The   字符   写法   

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

先看正确实现:  

<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方法时,最好将正则表达式作为变量传入,原因如异常所示:表达式内要避免"\"。

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

标签:int   within   integer   内容   pre   lang   The   字符   写法   

原文地址:https://www.cnblogs.com/HF-Made/p/11607123.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!