我们在index.jsp
写一个EL表达式:${pageContext.request.contextPath }
,可以看到,在写到.request
时是没有提示的,而在写到.contextPath
时提示又有了,这是因为pageContext
是属于jsp-api.jar
的,我们没有把这个依赖加进来,所以没有提示,request
是属于servlet-api.jar
的,它的运行时环境(也就是依赖)我们已经导进来了,所以它后面有提示
所以我们要把jsp-api.jar
的依赖也导入到pom.xml
中
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1.3-b06</version>
<scope>provided</scope>
</dependency>
这样就可以有提示也不报错了
这里说个小技巧:可以看到对于这种在项目中提示有错误
但是打开jsp
页面后又什么都没有的错误
我们可以
在上图中Quick Access
中输入Problems
这样我们就可以看到错误了
如果我们将下面代码中的<scope>provided</scope>
改为<scope>compile</scope>
,可能会出现很严重的问题,报一个空指针异常java.lang.NullPointerException
,(为什么说可能呢?在我的电脑上测试时我怎么弄也没把这个异常弄出来,但是在学习的视频里是会报异常的………)这个是因为你导入的jar包冲突导致的,因为有的jar包Tomcat
服务器上已经有了的,但是你又使用compile
依赖范围把重复的jar包部署上去了,所以会报错
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1.3-b06</version>
<scope>provided</scope>
</dependency>