使用maven和eclipse自动生成的web工程中jsp页面c:out不生效的解决
2014-06-21 23:03
831 查看
现在回想起这个问题,只能说很多细节没关注过,不知道是什么意思,有什么作用。也许,这次遇到这个错误,也是一件好事情吧。
废话不多说了,上主题。
通过如下模版新建了web项目:
![](http://img.blog.csdn.net/20140621230624109?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2FubnljaGFu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
默认的Dynamic Web Module为2.3【坑爹啊】,然后修改Dynamic Web Module为2.5【可能会出现更改不了的情况,请参考本文最后的附】
但页面始终显示${name},而不是返回真实的属性。
后面网上查询“c:out不生效”相关问题,有人说要设置:
<%@ page isELIgnored="false" %>
我不知道是什么意思,报着试一试的态度,改了之后居然页面显示正常了。
马上检查自动生成的web.xml,居然用的servlet 2.3。原来,我更改Dynamic Web Module为2.5后,web.xml并没有更改。
后面干脆修改为3.0版本:
之后测试一切OK。
老实说,web.xml的schema和html的DOCTYPE 声明,以前还真没有关注过,从来都是copy过来能用就行。
这次自己动手暴露出问题,算是有不小的收获了。
废话不多说了,上主题。
前戏
eclipse版本:Kepler Release,maven版本:3.0.5,eclipse插件版本:Maven Integration for Eclipse1.4.0。通过如下模版新建了web项目:
默认的Dynamic Web Module为2.3【坑爹啊】,然后修改Dynamic Web Module为2.5【可能会出现更改不了的情况,请参考本文最后的附】
现象
然后加入spring3.2.9,写controller和index.jsp,controller中返回name,jsp页面用“<c:out value="${name}" />”.但页面始终显示${name},而不是返回真实的属性。
解决
曾一度怀疑spring3.2.9版本有问题,修改为工作中用的spring3.1.1,同样不行。后面网上查询“c:out不生效”相关问题,有人说要设置:
<%@ page isELIgnored="false" %>
我不知道是什么意思,报着试一试的态度,改了之后居然页面显示正常了。
原因
激动之余就查了isELIgnored的相关信息:isELIgnored 属性 isELIgnored 属性控制的是:忽略(true)JSP 2.0 表达式语言(EL),还是进行正常的求值(false)。这是 JSP 2.0 新引入的属性;在只支持 JSP 1.2 及早期版本的服务器中,使用这项属性是不合法的。这个属性的默认值依赖于 Web 应用所使用的 web.xml 的版本。如果 web.xml 指定 servlet 2.3(对应JSP 1.2)或更早版本,默认值为 true(但变更默认值依旧是合法的,JSP 2.0 兼容的服务器中都允许使用这项属性,不管 web.xml 的版本如何)。如果 web.xml 指定 servlet 2.4(对应 JSP 2.0)或之后的版本,那么默认值为false。使用这个属性时,可以采用下面两种形式: <%@ page isELIgnored="false" %> <%@ page isELIgnored="true" %>
马上检查自动生成的web.xml,居然用的servlet 2.3。原来,我更改Dynamic Web Module为2.5后,web.xml并没有更改。
后面干脆修改为3.0版本:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
之后测试一切OK。
老实说,web.xml的schema和html的DOCTYPE 声明,以前还真没有关注过,从来都是copy过来能用就行。
这次自己动手暴露出问题,算是有不小的收获了。
附:
更改Dynamic Web Module版本的方法相关文章推荐
- Eclipse 使用 Maven 构建动态 Web 工程,默认无 java 目录的解决方法
- 使用Eclipse修改JSP页面需要重启tomcat的解决方法
- 使用m2e将工程转化为maven工程后eclipse报Plugin execution not covered by lifecycle configuration:xxx plugin问题的解决方法
- JAVA WEB 工程 SSH框架在Jenkins中打包前使用IDFC Maven ProGuard Plug-in混淆的错误的解决
- ECLIPSE中MAVEN构建spring 多模块工程jar包不能自动扫描问题解决办法
- 解决Eclipse和myeclipse在进行 html,jsp等 页面编辑时,自动格式化变丑的问题
- maven web项目在eclipse上自动发布到tomcat出错解决办法
- Eclipse+Maven快速生成Web项目,解决部署时Maven lib依赖问题
- 使用eclipse和maven生成java web程序war包
- eclipse使用maven,启动工程tomcat报错:java.lang.ClassNotFoundException: org.springframework.web.context.Contex
- 安卓开发环境的搭建和解决在Eclipse新建安卓5.1工程不能自动生成R文件的问题
- 使用eclipse export打jar包,web工程使用*读取配置读不到的问题解决方法
- 使用jsp生成web静态页面
- eclipse 集成maven插件后使用maven插件创建web工程
- Eclipse与Tomcat搭配使用解决tomcat自动部署时默认web项目为ROOT
- Eclipse+Maven快速生成Web项目,解决部署时Maven lib依赖问题
- eclipse 使用maven 自动解决开源maven项目依赖包问题
- Eclipse+Maven快速生成Web项目,解决部署时Maven lib依赖问题
- 使用该JavaBean可以将数据在JSP页面中以表格的形式显示出来,并具有动态排序、动态生成查询、自动分页功能
- 【Javaweb】Eclipse for JavaEE新建的Web工程自动生成web.xml