使用JSTL标签出现问题

HTTP状态 500 - 内部服务器错误
类型 异常报告消息 无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jstl/core]描述 服务器遇到一个意外的情况,阻止它完成请求。例外情况org.apache.jasper.JasperException: 无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jstl/core]org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:54)org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:294)org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:81)org.apache.jasper.compiler.TagLibraryInfoImpl.generateTldResourcePath(TagLibraryInfoImpl.java:251)org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:122)org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:435)org.apache.jasper.compiler.Parser.parseDirective(Parser.java:493)org.apache.jasper.compiler.Parser.parseElements(Parser.java:1450)org.apache.jasper.compiler.Parser.parse(Parser.java:144)org.apache.jasper.compiler.ParserController.doParse(ParserController.java:244)org.apache.jasper.compiler.ParserController.parse(ParserController.java:105)org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:206)org.apache.jasper.compiler.Compiler.compile(Compiler.java:391)org.apache.jasper.compiler.Compiler.compile(Compiler.java:367)org.apache.jasper.compiler.Compiler.compile(Compiler.java:351)org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:605)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:399)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)javax.servlet.http.HttpServlet.service(HttpServlet.java:764)org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)com.controller.ChoiceServlet.service(ChoiceServlet.java:64)javax.servlet.http.HttpServlet.service(HttpServlet.java:764)org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
):注意 主要问题的全部 stack 信息可以在 server logs 里查看Apache Tomcat/9.0.56

阅读了以下资料,引用于博客园凝荷的文章

JSTL配置:

主要牵涉到两个jar包

standward.jar和jstl.jar包 (两个包1.0和1.2版本的下载以及TLD下载路径如下:下载路径)

加载方式包括两种

1,非自动加载

a,将tld文件copy到WEB-INFO下的tld目录下,没有就创建之

b,修改web.xml文件配置,添加配置如下

 <jsp-config><taglib><taglib-uri>http://java.sun.com/jstl/core</taglib-uri><taglib-location>/WEB-INF/tld/c.tld</taglib-location></taglib><taglib><taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri><taglib-location>/WEB-INF/tld/fmt.tld</taglib-location></taglib><taglib><taglib-uri>http://java.sun.com/jstl/fn</taglib-uri><taglib-location>/WEB-INF/tld/fn.tld</taglib-location></taglib></jsp-config>

复制代码
  c,jsp中引用taglib

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

2,自动加载

Servlet2.4规范提供了对tld文件的自动加载,tld文件在standard.jar的META-INF文件夹中。

如:c.tld文件提供了对核心jstl标签的描述

<taglib xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"version="2.0"><description>JSTL 1.1 core library</description><display-name>JSTL core</display-name><tlib-version>1.1</tlib-version><short-name>c</short-name><uri>http://java.sun.com/jsp/jstl/core</uri>

可以看到其引用的uri为http://java.sun.com/jsp/jstl/core

则在jsp中引用taglib为:

 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

三,JSTL核心标签库的使用

JSTL 核心标签库标签共有13个,功能上分为4类:

1.表达式控制标签:out、set、remove、catch

2.流程控制标签:if、choose、when、otherwise

3.循环标签:forEach、forTokens

4.URL操作标签:import、url、redirect

使用标签时,一定要在jsp文件头加入以下代码:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

============================================================================

我的情况:

使用maven导入以下包

  <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency><!-- https://mvnrepository.com/artifact/javax.servlet/jstl --><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency></dependencies>

JSP也使用了taglib自动加载c.tld文件

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

鼠标放到标签上也能自动识别jar包
CTRL+鼠标左键会自动跳转到jar包WEB-INF的c.tld文件中

但是运行就是出错

查看自己的代码没有发现任何问题,并且根据另一篇文章所说方法修改

手动将

c.tld文件复制到webapp的WEB-INF目录下

此时可以正常运行

疑惑这个问题产生的原因,应该是自动加载到c.tld文件的却找不到c.tld文件,不知道是maven的问题还是IDEA的问题,不知道有没有更好的办法让程序自动找到正确的c.tld文件。

jstl 无法自动加载c.tld文件相关推荐

  1. php自动加载基类文件

    原文地址 问题描述 偶尔我们可能不使用php框架写一些代码,会自己写一个框架或者包,这时一般会涉及多个文件. 这种情况下,如果只使用命名空间是不能加载其他需要的文件的. 使用php的 spl_auto ...

  2. ThinkPHP 3.2.3 自动加载公共函数文件的方法

    方法一.加载默认的公共函数文件 在 ThinkPHP 3.2.3 中,默认的公共函数文件位于公共模块 ./Application/Common 下,访问所有的模块之前都会首先加载公共模块下面的配置文件 ...

  3. vim编辑器中cscope自动加载cscope.out文件的方法

    方法一 :vim 插件--autoload_cscope.vim 步骤: 插件下载地址:autoload_cscope.vim 下载之后,讲autoload_cscope.vim放到~/.vim/pl ...

  4. yii2 引入php文件,Yii2中YiiBase自动加载类、引用文件方法分析(autoload)

    本文实例分析了Yii2中YiiBase自动加载类.引用文件的方法.分享给大家供大家参考,具体如下: 在Yii2中这个函数是用来加载类的,没有直接引用文件的相关实现.但是这个也可以用来引用文件. pub ...

  5. Tomcat 7 自动加载类及检测文件变动原理

    在一般的 web 应用开发里通常会使用开发工具(如 Eclipse.IntelJ )集成 tomcat ,这样可以将 web 工程项目直接发布到 tomcat 中,然后一键启动.经常遇到的一种情况是直 ...

  6. php入门篇-------PHPCMS 入口文件,自动加载系统函数和URL规则

    这里主要分析PHPCMS的入口文件和系统自动加载配置文件和系统函数,还有URL的规则: 首先是入口文件分析: index.php 2,框架主文件分析:(这里主要分析加载配置文件和公共函数,还有URL规 ...

  7. php源码自动识别文本中的链接,自动加载识别文件Auto.php

    用于本应用的控制器自动加载类设置,用法如同\CodeIgniter\Config\AutoloadConfig 自动加载识别文件:dayrui/App/应用目录/Config/Auto.php 语法格 ...

  8. PHP框架自动加载类文件原理

    描述:公司项目PHP用作中间转发层(接收http请求,用 socket跟c++做通信),由于代码没有用到框架,这些东西自然就是之前的人自己写的.最近需要对这个底层进行优化,于是便看了下这部分的代码. ...

  9. Tp5自动加载创建admin和index文件夹

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/yumon321/article/det ...

  10. cad自动运行dvb lisp_CAD-如何自动加载dvb、vlx、fas、lsp、arx文件

    CAD如何自动加载dvb.vlx.fas.lsp.arx文件 1.先把要加载的dvb.vlx.fas.lsp.arx文件复制到support目录下,然后在support目录下的acad200x.lsp ...

最新文章

  1. 跑步的时候,我在想什么?
  2. linux shell ls 获取绝对路径
  3. python 网络相关依赖库 dpkt、scapy、pcap 安装
  4. leetcode算法题--旋转链表
  5. wxWidgets:wxMessageOutput类用法
  6. winsok编程历程
  7. Python函数中参数* 和 ** 的区别
  8. python multiprocessing 保存与打印返回值
  9. 内存检查工具valgrind介绍、安装与使用
  10. OpenGL ES着色器语言之变量和数据类型(一)(官方文档第四章)和varying,uniform,attribute修饰范围...
  11. 如何解决系统存储卡找不到,难一格式化的问题
  12. 运动控制——运动曲线分析
  13. Linux中JAVA服务器内存占用高(分析解决方法)
  14. 对生成对抗网络GANs原理、实现过程、应用场景的理解(附代码),另附:深度学习大神文章列表
  15. Hexo更换主题教程
  16. 电影人生 - 一个人的电影
  17. echarts图表动态化
  18. 你了解HTTP2协议吗?(一)
  19. vue2之v-for详解
  20. 横杠转义(正则表达)

热门文章

  1. 慎用!闲鱼APP竟然成为了诈骗犯的庇护所!
  2. Elasticsearch08:es-ik添加自定义词库、热更新词库
  3. linux 电驴,开源电驴 MLDonkey 3.0.7 发布
  4. Go命令行调用Python运行ParlAI模型,同步输入输出并调用百度翻译API翻译
  5. PCIe 复位:Clod reset、warm reset、Hot reset、Function level reset
  6. 【Web安全从入门到放弃】02_跨站脚本漏洞
  7. Oracle 实验:建立和配置Oracle数据库服务器
  8. R语言在逻辑回归中求R square R方
  9. Telegram传奇:俄罗斯富豪、黑客高手、极权和阴谋
  10. 876. 链表的中间结点【我亦无他唯手熟尔】