美文网首页
【踩坑】jstl的使用

【踩坑】jstl的使用

作者: giraffecode9668 | 来源:发表于2019-05-05 21:24 被阅读0次

这个坑好像是半个月才解决,因为过五一前许多作业和五一在家的躺尸,所以过了大半个月才又碰这个坑,上次花了半天还是没解决,越来越烦!

这次花了个半小时耐心尝试出来了,记录一下:

简单记下这是什么东西?就是一个JSP的标签库!

它封装了JSP应用的通用核心功能。JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。

  1. pom写入依赖
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.0.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.1</version>
      <scope>provided</scope>
    </dependency>

在需要用jstl的jsp页面写入头:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

  1. 运行tomcat报错!!!
    我之前报错的就是这一步,我的项目是照着教学视频打的,集成了ssm框架,一直到这一步就报错,错误是:The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
    但是我新建一个空项目单纯添加以上依赖包运行tomcat却没报错!!!

网上一堆建议看着看着都烦死人了,有版本的:1.1和1.2的区别,不同包的:api和impl的导入,重复依赖的:要去除重复的servlet包依赖,等等,总之都试过没有成功!

先作出以下分析:

  • 1.1是旧版本,需要standard.jar 和 jstl.jar两个包;1.2是新版本,只需要jstl.jar一个包
  • 重复依赖是指tomcat7.0已经集成了servlet包,而jstl包又导入了一次servlet包,所以要在jstl依赖写<exclusions>标签排除,但是我试了觉得没用,jstl貌似没有jstl包。另外引入的servlet和jsp包<scope>provided</scope>不会加入到运行环境。
  • jstl1.2包包含了jstl-api和jstl-impl两个jar包,网上好多多此一举写两个包的...
  1. 我是这么做的

第一步的依赖包不变:依赖包还是那三个,taglib写法不变
找到外部库中对应的jstl包,展开,将要用到标签的tld后缀文件复制到自己项目的WEB-INF中,然后运行,bug消失!!!

image.png

再提一下:我又被坑了一个地方是:Property 'department' not found on type com.atguigu.crud.bean.Employee ,就是javabean这个属性没有getter和setter方法!!!keng!!!

谢谢这篇博客:https://blog.csdn.net/sinat_34104446/article/details/82846585
这篇博客是消除依赖的,也贴了:https://blog.csdn.net/qq_29227939/article/details/52063869

相关文章

网友评论

      本文标题:【踩坑】jstl的使用

      本文链接:https://www.haomeiwen.com/subject/nelkoqtx.html