简介
开发中遇到一个问题,就是JSP页面中EL表达式不被解析,有些时候是以报错的形式展示在页面,提示EL表达式解析失败了,比如${stu.name}
无法被解析
其实,这是我们配置出现了错误的原因
解决方法
第一种方式:<%@ page isELIgnored="true|false" %>
,当isELIgnored 值为true的时候,那么EL表达式将会被当做字符串进行解析,也就是你页面写的什么就输出什么,并不会进行赋值运算。当isELIgnored 值为false的时候,EL表达式将会生效。因此,我们只要将isELIgnored 值设置为false即可。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
-- 务必设置 isELIgnored = "false" 否则,将会忽略el表达式,导致使用el表达式的jsp文件解析错误
<%@ page isELIgnored="false" %>
第二种方式: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" >
<web-app>
...
</web-app>
将会导致EL表达式解析不了的问题。
只需要将Web.xml
头部配置提升版本即可,如下
<?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">