servlet web2.5到web3.0后jsp的EL表达式不能解析(servlet降级方法)【本质原因找到】

来源:互联网 发布:2016淘宝店好做吗 编辑:程序博客网 时间:2024/06/05 19:58

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/javaeehttp://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页面声明的参数。

反思下这两周为这事折腾的原因还是底子没打牢。

1 0
原创粉丝点击