zoukankan      html  css  js  c++  java
  • JSP页面不支持EL表达式的解决方法

    JSP页面不支持EL表达式的问题就出在新建项目时web.xml的声明上。 

    web.xml声明部分一般分为如下版本的xsd:

    • web-app_2_2.xsd 
    • web-app_2_3.xsd 
    • web-app_2_4.xsd 
    • web-app_2_5.xsd 

    web-app_2_2.xsd:

    <?xml version="1.0" encoding="UTF-8"?>  
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/dtd/web-app_2_2.dtd">  

    web-app_2_3.xsd:

    <?xml version="1.0" encoding="UTF-8"?>  
    <!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_2_4.xsd:

    <?xml version="1.0" encoding="UTF-8"?>  
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  

    web-app_2_5.xsd:

    <?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" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  

    在确定web.xml里的xsd版本之后一定要在JSP页面的头部声明(<%@page %>)部分加一行,如下: 

    <%@ page isELIgnored="false" %> 

    设为false才能解析EL表达式。 

    经过各版本的test之后,注意!!其中Servlets 2.4(JSP 2.0出来之后的第一个版本),这个版本的isELIgnored默认设置为false。所以使用web.xml里用web-app_2_4.xsd声明的时候在JSP页面不用特意声明。 

    下面是官方Documention中isELIgnored Attribute的详解: 

    文章转自:http://www.iteye.com/topic/155354

    经过测试,以上修改web.xml头为2.4的方式在Eclipse中用tomcat插件运行并不生效,而打包成war包部署到tomcat中是可行的,而在每个页面上增加page属性开启el表达式支持对于两种部署都可行。

    下面这种方式是直接web.xml中增加对每个页面开启el表达式,配置如下(同样,在Eclipse的tomcat插件中是不可行的,部署到Tomcat中是可行的):

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

    详细配置:

        <jsp-config>  
            <jsp-property-group>  
                <description>指定JSP文件的配置属性</description>  
                <display-name>jspConfiguration</display-name>  
                <url-pattern>*.jsp</url-pattern>  
                <el-ignored>false</el-ignored>  
                <page-encoding>utf-8</page-encoding>  
                <scripting-invalid>false</scripting-invalid>  
                <include-prelude></include-prelude>  
                <include-coda></include-coda>  
            </jsp-property-group>  
            <jsp-property-group>  
                <description>指定htm文件的配置属性</description>  
                <display-name>jspConfiguration</display-name>  
                <url-pattern>*.htm</url-pattern>  
                <el-ignored>false</el-ignored>  
                <page-encoding>utf-8</page-encoding>  
                <scripting-invalid>false</scripting-invalid>  
                <include-prelude></include-prelude>  
                <include-coda></include-coda>  
            </jsp-property-group>  
            <jsp-property-group>  
                <description>指定html文件的配置属性</description>  
                <display-name>jspConfiguration</display-name>  
                <url-pattern>*.html</url-pattern>  
                <el-ignored>false</el-ignored>  
                <page-encoding>utf-8</page-encoding>  
                <scripting-invalid>false</scripting-invalid>  
                <include-prelude></include-prelude>  
                <include-coda></include-coda>  
            </jsp-property-group>  
        </jsp-config> 

    属性说明:

    <description>:设定的说明 
    <display-name>:设定名称 
    <url-pattern>:设定值所影响的范围,如:/CH2或/*.jsp
    <el-ignored>:若为true,表示不支持EL语法 
    <scripting-invalid>:若为true,表示不支持<% scripting %>语法 
    <page-encoding>:设定JSP网页的编码 
    <include-prelude>:设置JSP网页的抬头,扩展名为.jspf
    <include-coda>:设置JSP网页的结尾,扩展名为.jspf

  • 相关阅读:
    mysql索引最左匹配的理解(转载于知乎回答)
    mysql深度优化与理解(迄今为止读到最优秀的mysql博客)
    PHP数组函数总结与使用
    进程(process)和线程(thread)
    联合索引使用规则(转载)
    mysql优化大全(转自别人 )
    HTTP隧道解决的问题
    HTTP代理协议 HTTP/1.1的CONNECT方法
    vant弹窗提示
    vue获取验证码倒计时
  • 原文地址:https://www.cnblogs.com/EasonJim/p/6959120.html
Copyright © 2011-2022 走看看