解决JSP页面中EL表达式不生效
BUG背景:
使用maven-archetype-webapp模板创建的Module,这个Module里面所有的jsp页面都无法使用EL表达式.
原因:生成的web.xml默认版本是2.3版本(这版本连EL表达式都默认不能使用,坑爹)。
效果如下面两图,首页里面写的EL表达式,在网页中会原样输出EL表达式
解决方法1:
在你需要使用EL表达式的页面顶端上添加以下代码,开启EL表达式,因为maven配置的jsp默认不开启EL表达式:
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" language="java" %>
解决方法2(永久):
修改maven-archetype-webapp的web.xml为更高的版本,这样之后创建的所有Module都可以默认开启EL表达式
Step1.
找到maven-archetype-webapp的jar包,先找到你的本地maven仓库,之后的路径是:org\apache\maven\archetypes\maven-archetype-webapp\1.4\maven-archetype-webapp-1.4.jar
比如我的maven-archetype-webapp-1.4.jar:
Step2.
用压缩软件右键直接打开jar包(不是解压),比如我使用的BandZip打开:
Step3.
找到web.xml并打开
Step4.
修改xml,将以下xml内容粘贴并直接全部覆盖原先的内容,保存.以后创建的所有maven-archetype-webapp的Module都可以默认开启EL表达式
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<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_3_1.xsd"
version="3.1">
</web-app>