您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

JSP中未评估EL表达式

JSP中未评估EL表达式

是的,我在web.xml中有doctype <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "java.sun.com/dtd/web-app_2_3.dtd"; >

<!DOCTYPE>从中删除内容web.xml并确保<web-app>已声明声明符合Servlet 2.4或更高版本,并且一切都应该很好。有效的Servlet 3.0兼容(Tomcat 7,JBoss AS 6/7,GlassFish 3等)*<!DOCTYPE>

<?xml version="1.0" encoding="UTF-8"?>
<web-app 
    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"
    version="3.0">

    <!-- Config here. -->

</web-app>

对于Servlet 3.1(Tomcat 8,WildFly 8/9/10/11,GlassFish / Payara 4等),如下所示:

<?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_3_1.xsd"
    version="3.1">

    <!-- Config here. -->

</web-app>

对于Servlet 4.0(Tomcat 9,WildFly 12,GlassFish / Payara 5等),如下所示:

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

    <!-- Config here. -->

</web-app>

使用JSTL 1.1或更高版本时,您需要确保web.xml以这样的方式声明您的身份:web应用程序至少以Servlet 2.4方式运行,否则EL表达式将无法在webapp中运行。

当仍然有一个Servlet 2.3或以上<!DOCTYPE><web-app>web.xml,即使你已经有一个Servlet 2.4或更新版本的XSD,那么它仍然会被迫在Servlet的2.3或以上作案运行,使EL表达式失败。

技术原因是,EL最初是JSTL 1.0的一部分,而在Servlet 2.3 / JSP 1.2及更低版本中不可用。在JSTL 1.1中,EL从JSTL中删除,并与Servlet 2.4一起集成在JSP 2.0中。因此,如果web.xml声明您在Servlet 2.3或更旧的版本中运行webapp,则JSP会期望在JSTL库中找到EL,但是如果它是缺少EL的较新的JSTL版本,那么这将失败。

其他 2022/1/1 18:14:03 有377人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶