Jsp页⾯使⽤taglib标签报错500的问题
花了⼤量时间查阅⼤量资料后解决了,下⾯我说⼀下我解决问题的整个经过。
出现问题后我查阅资料,⼤部分给出的原因是没有添加avax.servlet.jstl的依赖,或者是项⽬打包输出的构建⽂件lib中不包含这个包的依赖,我仔细检查后发现,我本地项⽬确实存在。
继续查阅资料说,少⼀个standard包的依赖,我继续尝试,在项⽬中添加standard包的依赖,并在tomcat的lib⽬录⾥也添加了jstl及standard 包,继续运⾏,发现还是报错。
jstl条件标签然后继续查阅资料,原因因为项⽬jsp页⾯引⽤的taglib标签所使⽤的tld⽂件没有从jstl包中加载出来,导致报错,解决⽅式是在项⽬的WEB-INF下添加jstl中所有tld⽂件。于是乎,我在本地项⽬的WEB-INF下建⽴了⼀个taglib⽂件夹,把jstl包解压后,把⾥⾯jar包的META-INF\中.tld全部拷贝出后放在新建的⽂件夹中。
解决⽅式是暴⼒了点,还是先解决问题再说,于是乎再次运⾏。
原本这⾥就结束了,但是我不⽢⼼,这么解决太暴⼒了,⽽且影响项⽬结构,看起来很乱,于是乎继续翻阅资料。偶然发现了⼀篇博客,说是tomcat的catalina.properties配置⽂件⾥如果配置了跳过tld扫描会导致项⽬⽆法加载.tld⽂件的问题,所以解决办法是把catalina.properties 配置⽂件中的tomcat.util.scan.
StandardJarScanFilter.jarsToSkip字段修改为\
总结:
我看⽹上很多说法,说是tomcat添加tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar后会提⾼tomcat的启动速度,也会解决因为扫描.tld⽂件⽽导致卡在启动项⽬⼗⼏分钟的问题,但是带来的弊端就是jsp页⾯taglib标签500错误,所以这个问题的两种解决⽅式,⼤家根据⾃⼰情况⾃⾏选择:
1. 第⼀种:在项⽬的WEB-INF下添加jstl中所有tld⽂件,这样会导致项⽬结构看起来很乱,好处是不使⽤JSP作为视图层时,tomcat启动
速度增加。
2. 第⼆种:就是修改tomcat中catalina.properties⽂件配置为tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\,优缺点与第⼀种相反。
如果有更好的解决⽅式,可以评论交流。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论