在jsp中使用EL表达式拼接字符串的时候报500错误
下面我列出一个简单的例子
代码如下
<!--
举个例子 从controller层传了几个参数在当前jsp页面
id = 1
name = 阿豪
条件: 我们需要根据 state的值来动态的显示不同的信息
-->
<div>${name + "!"}</div>
<div>${id + name}</div>
具体错误如下
2018-12-19 15:46:06,614 ERROR [500.jsp] - For input string: "阿豪"
java.lang.NumberFormatException: For input string: "阿豪"
在EL表达式中 如果我们使用 ${id + 2}
也不会报异常, 但是是字符串的话就会报异常NumberFormatException
,我就不具体介绍它为什么报这种异常,因为我也是小白。还没有深入研究(可能发现有运算符就会把他转成数字)
解决方案
只要在 EL 表达式中涉及字符串拼接,我们可以使用 concat() 方法
<div>${name.concat("/").concat(id)}</div> <!-- 结果: 阿豪/1 -->
- concat() 就是字符串拼接