【问题描述】
jsp页面无法解析jstl标签,之前不知道问题出在哪,调了很久很久都没有解决,一直显示 ${ message.id}
就像这个样子,先上解决方案。
【解决方案】
查看web.xml文件
注意看,第二行:
问题就在这行,后来我查了发现,javaee这里显示的是2.3版本,2.3及以前都不支持解析jstl文件。把它改成2.4或2.5即可,怎么改看下面。
ps:那么如果要用2.3强行解析怎么办,这个我现在还没有找到解决办法。
【web.xml相关问题】
【无法自动生成web.xml文件】
【web.xml生成的头文件有问题】
对于自动生成的头文件一定要小心,很容易出错,都不知道问题在哪,所以请按下面的版本选择适合自己的版本。
【各种版本头文件】
为了不走这个坑,我搜集了各个版本的web-app版本,按照这个改成你想要的版本即可:
Servlet 2.3
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://Java.sun.com/dtd/web-app_2_3.dtd">
...
Servlet 2.4
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:web="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
...
Servlet 2.5
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
【收获】
尽量多的注释,方便别人也方便自己。
不要把所有的实现代码写在一个类或方法里,尽可能多的建立包和类,分层管理。
尽量多的复制代码和命名id等,这样可以减少时间和误差,因为手贱很容易少打或多打字母,这样的错误就够你找半天。
...