初学jstl的时候记得只需要讲jstl和standard的jar放在lib下面,然后jsp中使用对应导入语法就可以使用标签库了。
但那时候用的是myeclipes,myeclipes的导包的过程记得是:将jar放入到lib下面,然后走build path即可。
现在使用的是idea,idea的导入包语法是project structure下面去add depencies
增加了同样的包之后,web项目中使用jstl就报错:
然后想不通问题在哪,百度:
tld没有在idea里面加上
tomcat版本不一致
没有将tld文件抽取出来放在WEB-INF下面
没有配置jsp-config
各种各样的版本,依次去试验,还是各种错误。
最后,怎么解决的。知识来源于哪里?言传身教,文档,书籍。我于是找jstl有关书籍,发现以下一段话:
注意到了吧,是tomcat的WEB-INFlib中,然后去看tomcat,发现没有这个文件夹啊,只有个lib。
当然,你直接复制到lib中也可以,但是不建议,那是全局的。
还记的我们使用tomcat容器跑web跑web项目使用myeclipes吧,配置好的项目再执行的时候会在tomcat的webapps下面生成一个对应的文件夹,也就是说我们项目的编译后代码会在tomcat的对应文件夹下编译好在这里,供给使用,只需要放置在项目中的WEB-INF下的lib即可。
idea跑web项目配置tomcat之后对应的编译文件在webapp下却找不到,我也不知道使用的什么机制,但是观察日志在user下的某个文件夹下也有,并且使用了tomcat的manage文件夹,现在知道了一个问题:
WEB-INF/lib下的jar是给tomcat使用的
所以之前用myeclipes时候其实只有build path才是导包,。。。。。idea使用除了导包之外也应该给tomcat对应的jar支持,于是项目中新建lib添加2jar,问题完美解决
总结:
知其然然后知其所以然,尽信书不如无书,百度也是!