el表达式不生效(原样输出问题不被解析)问题的解决办法

如果遇到el表达式不生效(原样输出问题不被解析)问题,比如${yanggb}被原样输出成字符串,通常的原因是servlet3.0默认关闭了el表达式的解析,因此jsp页面忽视了el标签,要加入不忽略el表达式的page指令才行。

<%@ page isELIgnored="false" %>

注:EL表达式是不需要引入包的,tomcat自带servlet的包。

拓展

1.如果JSP中无法自动提示EL表达式的解决方法,在maven的pom.xml中加入如下代码。

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.0</version>
    <scope>provided</scope>
</dependency>

2.如果JSP中EL表达式不起作用,原样输出,除了最上面的解决方案外,可以更改web.xml的web-app标签中的命名空间来解决。

<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>

另外还需要在web.xml中配置jsp-config标签。

<jsp-config>
    <jsp-property-group> 
    <url-pattern>/jsp/* </url-pattern>
    <el-ignored>true</el-ignored>    
    </jsp-property-group>
</jsp-config>

"我等了很久很久,也没有等到你。"

原文地址:https://www.cnblogs.com/yanggb/p/12403415.html