servlet web2.5到web3.0后jsp的EL表达式不能解析
降级到2.5后,依然不能解析,没有报错,就是见到${path },系统直接忽略,没有任何显示
。。。。
降级方法
1、(找到settings文件夹中的org.eclipse.wst.common.project.facet.core.xml,把3.0改成2.5)
2、修改web.xml文件
<?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:web=”http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”
xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”
id=”WebApp_ID” version=”2.5″>
<?xml version=”1.0″ encoding=”utf-8″?>
<web-app version=”3.0″
xmlns=”http://java.sun.com/xml/ns/javaee”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd”>
正在找方法解析EL
5.6日更新
找到没有解析EL的原因了,并不是什么版本问题,也不是要加什么ignoreEL,而是.....我少了个jar包
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
脑袋突然一灵光,在jsp页面上写了个${4+4}看会不会有结果
此时系统立马报错,网上一搜:
javax.servlet.jsp.PageContext cannot be resolved to a type
就知道少了jar包....
知识延伸scope:
在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:
* compile,缺省值,适用于所有阶段,会随着项目一起发布。
* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
* runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
* test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
* system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
5.7日更新
6号更新的是错的,本质原因不是缺少jar,而是我对JSP的理解不够透彻
<% String dd = "dd"%>这样声明的字符串,只有<%=dd%>才能取到值
而${dd},dd是从后台传过来的参数,不是jsp页面声明的参数。
反思下这两周为这事折腾的原因还是底子没打牢。