学习Java Web开发,一开始好像都练不过Servlet/JSP,多多少少都学习过他们的基本使用方法。其中在JSP的使用中,更是涉及到taglib、Jstl、EL这些东西。那具体到我们在页面中写的类似这种形式的EL表达式:
${1+2}
${1000}
在使用JSP进行页面展示时都会使用到。其本质上,人如其名,表达式也一样,${} 中间的也是一个表达式。而在页面中,我们实质上使用表达式是为了求值,并不仅仅是为了放到那里原样显示的,所以这就涉及到表达式的一个问题:
你的表达式到底能不能进行求值
例如上面的${1+2}是可以求值的,最后计算后,页面上显示3。那如果你写了一个${1+2x},这个时候谁也不知道它应该是多少,无法进行求值,所以这个时候JSP会具体的告诉你,表达式不合法,并且提示你具体的错误位置,就像这个样子:
我们看上面的图片,上方是具体的stackTrace。下方的root cause是具体更详细的错误产生原因。那这里比较有意思了,他提示了你具体的错误位置,还有后面期望的,即允许输入的内容,明显的x不在这个范围所