标签:对应关系 pom pre 错误 tom 依赖 webx maven 方案
在做一个demo,因为很久没有重新用 jsp 页面直接 EL 取数据了,遇到了问题,记录一下。
简单来说就是用 EL 在 jsp 页面里面从域中用 ${ xxx } 取数据:
因为这些都没有问题,所以我先排查了一下会不会是数据本身:
查了很多资料,jstl 的依赖、servlet版本匹配等等。(未解决)
后来又看到一个博主提到web.xml 中有个元素:
因为在idea 里面用原型模式构建一个 maven : web-app 项目,然后添加 springmvc 的依赖,这是构建的过程,但是点开 web.xml 之后可以看到根元素
web.xml头部指定的模式(Schema)文件中定义了多少种标签元素,web.xml中就可以出现它的模式文件所定义的标签元素,它就能拥有定义出来的那些功能。
事实上,web.xml的模式文件是由Sun公司定义的,每个 web.xml 文件的根元素
诶?那我们重新看一眼格式确实有点问题,其实和对应 servlet 的版本有关,用 idea 自动生成的时候,根元素里面表面它使用的是 2.3 版本的文件,实际上模式文件和对应的 java 版本更新早就已经到了4.0版本了,不同版本之间的特性也有差异,并且从对应 servlet 2.3 往后的约束文件,都已经不再是 dtd 而是 xsd 文件格式了。
那么对于使用 2.3 servlet 版本的这个dtd文件的约束,里面是有一个默认的属性 isELIgnored,如果 isELIgnored 是 true,当 EL 表达式出现在文本或者标签属性时被忽略。
因此对于我的问题,显然就是整个指定的可以这样:
<%@page isELIgnored="false" %>
将保证 EL 表达式的有效。修改之后成功。
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
</web-app>
这样,最前面的那个 !DOCTYPE 就可以删掉,修改之后成功。
Idea的springMVC项目,jsp页面的EL表达式失效问题,数据显示不出来。(已解决)
标签:对应关系 pom pre 错误 tom 依赖 webx maven 方案
原文地址:https://www.cnblogs.com/lifegoeson/p/13811444.html