博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
maven 工程 springMVC 使用 jstl 失败
阅读量:5783 次
发布时间:2019-06-18

本文共 1146 字,大约阅读时间需要 3 分钟。

问题描述:

在使用springMVC时,Maven 添加 Jstl 依赖,在 .jsp 文件中使用 jstl 表达式失败。报The absolute uri: cannot be resolved

生产环境:

tomcat 8
jdk 1.8
dynamic web module 3.0
jstl 1.2

原因分析:

先来看下我的Maven jstl的依赖是怎么写的

jstl
jstl
1.2
provided

在maven中, scope provided 意味着,该jar只在编译时提供支持,在运行时,由web容器提供支持。在tomcat 7(包含7) 以上版本不再提供对jstl的支持。所以,当你使用tomcat7(包含7)以上版本时,会报说 XXXX cannot be resolved。而tomca7 以下版本,在运行时会提供对 jstl 的支持。

也就是说,只要将 scope 范围改成 runtime 或者 compile 即可。
经过修改后,代码亲测有效。如:

jstl
jstl
1.2
runtime

这里不得不说maven 中 runtime 和 compile 的范围。

runtime:只在运行时,提供支持。

compile:编译时和打包成war都有效。

那么好,jsp是由动态编译产生的,因此,scope写成runtime 与 compile 都有效。

当然,还有可能是其他错误。例如 dynamic web module 版本 与 tomcat 版本不符合

下面 给出 dynamic web module 与 tomcat 对应的版本

dynamic web module 2.4 对应于Tomcat 5.5

dynamic web module 2.5 对应于Tomcat 6.0
dynamic web module 3.0 对应于Tomcat 7.0

dynamic web module的版本 对应的就是 web.xml 中的 version

参考:

maven范围

jstl错误分析

dynamic web module 与 tomcat 版本对应

转载地址:http://asjyx.baihongyu.com/

你可能感兴趣的文章
人人都会深度学习之Tensorflow基础快速入门
查看>>
ChPlayer播放器的使用
查看>>
js 经过修改改良的全浏览器支持的软键盘,随机排列
查看>>
Mysql读写分离
查看>>
Oracle 备份与恢复学习笔记(5_1)
查看>>
Oracle 备份与恢复学习笔记(14)
查看>>
分布式配置中心disconf第一部(基本介绍)
查看>>
Scenario 9-Shared Uplink Set with Active/Active uplink,802.3ad(LACP)-Flex-10
查看>>
UML类图中的六种关系
查看>>
探寻Interpolator源码,自定义插值器
查看>>
一致性哈希
查看>>
mysql(待整理)
查看>>
使用PullToRefresh实现下拉刷新和上拉加载
查看>>
2012年电信业八大发展趋势
查看>>
Web日志安全分析工具 v2.0发布
查看>>
JS重载
查看>>
python2和python3同安装在Windows上,切换问题
查看>>
php加速工具xcache的安装与使用(基于LNMP环境)
查看>>
android超链接
查看>>
redhat tomcat
查看>>