如果您的环境支持在EL对象上调用非getter方法的新EL 2.2功能(在所有与Servlet 3.0兼容的容器中可用,例如Tomcat
7,Glassfish
3等),那么您可以
String#matches()直接在EL中使用该方法。
<c:set var="numberAsString">${someexpressionToTestForNumber}</c:set><c:if test="${numberAsString.matches('[0-9]+')}"> It's a number!</c:if>(我将减号-
,千位和小数分隔符,
以及.
外部考虑因素保留为可能出现在技术上有效的数字中的字符)
请注意,
<c:set>带有 主体 表达式的with 会将任何类型隐式转换为
Stringusing
String#valueOf()。否则,非类型的
matches()呼叫
<c:if>将失败
String。



