最近在练手一个SSM的基于AdminLET框架模板的后台管理系统,使用的环境是tomcat9,使用Maven构建并通过添加Web模板框架的项目,在添加完所有的配置文件后启动tomcat运行,出现了一个错误:无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]。如果想直接看此问题的解决方式,可以直接翻阅文章最后的总结。

花了大量时间查阅大量资料后解决了,下面我说一下我解决问题的整个经过。

出现问题后我查阅资料,大部分给出的原因是没有添加avax.servlet.jstl的依赖,或者是项目打包输出的构建文件lib中不包含这个包的依赖,我仔细检查后发现,我本地项目确实存在。

继续查阅资料说,少一个standard包的依赖,我继续尝试,在项目中添加standard包的依赖,并在tomcat的lib目录里也添加了jstl及standard包,继续运行,发现还是报错。

然后继续查阅资料,原因因为项目jsp页面引用的taglib标签所使用的tld文件没有从jstl包中加载出来,导致报错,解决方式是在项目的WEB-INF下添加jstl中所有tld文件。于是乎,我在本地项目的WEB-INF下建立了一个taglib文件夹,把jstl包解压后,把里面jar包的META-INF\中 .tld全部拷贝出后放在新建的文件夹中。

解决方式是暴力了点,还是先解决问题再说,于是乎再次运行。

前一个问题解决了,但出现了一个新的:无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://www.springframework.org/security/tags]。心想,这不同理嘛,找到对应包的 .tld文件,然后也添加到WEB-INF下的taglib文件夹中不就行了,于是,我解压spring-security-taglibs-5.1.2.RELEASE,取出security.tld,运行确实成功了。

原本这里就结束了,但是我不甘心,这么解决太暴力了,而且影响项目结构,看起来很乱,于是乎继续翻阅资料。偶然发现了一篇博客,说是tomcat的配置文件里如果配置了跳过tld扫描会导致项目无法加载.tld文件的问题,我恍然大悟!

原来是昨天运行项目的时候,tomcat出现了一个警告。

解决方式是:Tomcat安装目录下apache-tomcat\conf\catalina.properties文件中看到有以下一串代码,代表的是在启动Tomcat需要跳过检查的jar包。

修改为 tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar 就不会出现警告了。突然明白,原来修改后tomcat就不会加载jar包中的.tld文件,所以导致报500错误,于是我重新修改为原来的代码,然后去掉项目中META-INF\taglib文件夹,运行后,成功了!

这下,终于真相大白了。

总结:

我看网上很多说法,说是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=\,优缺点与第一种相反。

如果有更好的解决方式,可以评论交流。

文章参考:

https://blog.csdn.net/sinat_34104446/article/details/82846585?utm_medium=distribute.wap_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.wap_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase

SSM框架练习之Jsp页面使用taglib标签报错500的问题的更多相关文章

  1. 关于SSM框架项目中jsp页面EL表达式使用的一些疑问(一)

    问题 ssm框架整合中,jsp页面中EL表达式所引用的对象“page”可以在controller中使用mav.addObject(“page”,pag )进行添加,如果省略mav.addObject( ...

  2. js 和 css 中 不能使用 jsp 页面中一些 标签 和 java 代码等,应注意

    js  和 css 中 不能使用 jsp  页面中一些 标签 和 java 代码等,应注意 如 ${ }  <%%>  等

  3. Eclipse 新建.jsp页面后,页面头部标签报错的解决方法

    Eclipse 新建.jsp页面后,页面头部标签报错的解决方法 1.报错地方: 2.解决方法: .jsp页面右键==>BUild Path ==>Configure Build Path. ...

  4. 页面白屏并且报错PHP Parse error: syntax error, unexpected end of file in 试了很久总算解决了

    页面白屏并且报错PHP Parse error:  syntax error, unexpected end of file in 试了很久 啥短标记,打开,都试了 最简单的办法 是重新建立一个文件, ...

  5. 【js监听报错】页面监听js报错问题

    <html> <head> <script type="text/javascript"> // 页面监听js报错问题 onerror=hand ...

  6. laravel框架手动删除迁移文件后再次创建报错

    手动删除laravel框架数据表迁移文件后再次创建报错 如下图: 执行创建操作之后会在autoload_static.php及autoload_classmap.php这两个文件中添加迁移文件的目录. ...

  7. JSP页面中taglib的uri设置

    今天遇到这样一个问题,使用JAVA做了个WEB应用,其中用到一个自定义标签.该标签的class文件与tld(tld文件中,uri定义为:http://wallimn.iteye.com/myfuncs ...

  8. SSM项目无法解析JSP页面

    JSP页面显示标头<%@ page language="java" contentType="text/html; charset=UTF-8" page ...

  9. jsp页面中jstl标签详解

    JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ...

随机推荐

  1. 浅谈MySQL数据库基本操作

    数据库配置 通过配置文件统一配置的目的:统一管理 服务端(mysqld) .客户端(client) 配置了 mysqld(服务端) 的编码为utf8,那么再创建的数据库,默认编码都采用utf8 配置流 ...

  2. Glusterfs的安装、创建卷、配置和优化卷、挂载使用

    一.网站推荐 1.https://gluster.readthedocs.io/en/latest/    这是官方的说明网站.这里面有安装Glusterfs原理,安装流程,各种卷的原理.创建方式.以 ...

  3. Java synthetic

    读完这篇文章你将会收获到 synthetic fields synthetic method synthetic class 概述 上一篇 Java 枚举 提及到编译成 class 文件之后.编译器会 ...

  4. 一.8.django权限管理/drf权限管理

    1.什么是权限管理: .权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源 .权限管理好比如钥匙,有了钥匙就能把门打开,但是权限设置是有级别之分的,假如这个系 ...

  5. IndentationError: unindent does not match any outer indentation level解决策略

    [亲测有效]Nodepad++/Sublime Text3中Python脚本运行出现语法错误:IndentationError: unindent does not match any outer i ...

  6. 放弃for循环吧

    前言 for(var i=0;i<array.length;i++){}这个可以是初学者必学的知识,也是JS中必不可少的功能,但如果对性能要求较高的小伙伴有了解过就会发现,for循环性能不高且代 ...

  7. 富文本编辑器实现从word中复制图片(外挂)

    1问题 基于web的富文本编辑器的功能普遍较弱,而word是公认的宇宙第一好用的文档编辑器,所以许多人都习惯先在word中编辑,然后再将内容粘到web富文本编辑器中. 但是,这种操作有一个问题:图片带 ...

  8. P2607[ZJOI2008] 骑士 题解

    题目 Z 国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬. 最近发生了一件可怕的事情,邪恶的 Y 国发动了一场针对 Z 国的侵略战争.战火绵延五 ...

  9. O(1)求解自然数异或和

    序 又是一个不眠之夜. 求: \[f_i=1 \bigoplus 2 \bigoplus 3 \bigoplus...\bigoplus (i-1) \bigoplus i \] 思路1:周期分析 \ ...

  10. MySQL分库分表的原则

    一.分表 当一个表的数据达到几千万条的时候,每一次查询都会花费更长的时间,如果这时候在使用链表查询,那么我想应该会实在那里,那么我们应该如何解决这个问题呢? 1.为什么要分表: 分表的目的就是为了解决 ...