jsp中为什么有时候需要加isELIgnored=“false”,有时候不加?
在IDEA写jsp的时候一直有个疑问
在jsp的头文件中有时候是下面这种写法
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
有时候又是这种写法:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
他们两个的差别就是一个中有isELIgnored="false"
,一个中没有这个。很是苦恼,到底什么时候加这个,什么时候不加这个。他们都和EL表达式有关,有时候加上isELIgnored="false"
EL表达式就可以用,但是有时候没加也可以用下面来探究一下。
这个就要从web.xml
的头文件说起。
如果不是maven项目的话,头文件一般来说是这样的
<?xml version="1.0" encoding="UTF-8"?>
<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_4_0.xsd"
version="4.0">
如果是maven项目的话web.xml
的头文件是下面这样的:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
这些头文件主要是一些协议,maven的默认的是2.3版本的(据说是为了扩展性),而2.5版本以上才支持EL表达式。所以只需要把web.xml换为以下头文件,就不需要加isELIgnored="false"
<?xml version="1.0" encoding="UTF-8"?>
<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_4_0.xsd"
version="4.0">