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

    EL的全称是Expression Language。
    1.在默认情况下,Servlet 2.3 / JSP 1.2是不支持EL表达式的,而Servlet 2.4 / JSP 2.0支持。 servlets 2.4这个版本的isELIgnored默认设置为false。所以使用web.xml里用web-app_2_4.xsd声明的时候在JSP页面不用特意声明。
    如何查看Servlet / JSP的版本?
    打开tomcat的common/lib 目录下,有两个JAR文件: jsp-api.jar servlet-api.jar 。如果没有,那可能是你没有添加进来。解压这两个文件,用记事本分别打开META-INF下的MAINMEFT.MF文件。查看Implementation-Version或Specification-Version项。
    2.如果web.xml 中web-app 的 version="2.5" ,也不支持EL表达式:
    [xhtml] view plaincopyprint?
    <web-app version="2.5"  
    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_2_5.xsd">  
     
    解决方法:
    1.修改web.xml文件为(Servlet 2.4 / JSP 2.0):
    [xhtml] view plaincopyprint?
    <web-app version="2.4"  
    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_2_4.xsd">  
     
    2.设置某个jsp页面使用el表达式,需要在jsp页面加上(控制单个页面) :
    [xhtml] view plaincopyprint?
    <%@ page isELIgnored="false"%>  
     
    或在web.xml文件中加上下列代码,这样就不用在每个jsp页面中指定了。
    [xhtml] view plaincopyprint?
    <jsp-config>  
      <jsp-property-group>  
        <url-pattern>*.jsp</url-pattern>  
        <el-ignored>false</el-ignored>  
      </jsp-property-group>  
    </jsp-config>  
    附:网上提供的更详细的设置(有点啰嗦,但是可以用来参考)
    [xhtml] view plaincopyprint?
    <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>  
     
     
    **********************************************
    <c:if test=""> 怎么做判断
    <c:forEach items="${limits}" var="limit">
    ${limit}<!-- 这里可以取到值 -->
    <c:if test="${limit}=='1'"><!-- 这里的test应该怎么写?????? -->
    <input type="button" value="权限一"/>
    </c:if>
     
    <c:if test="${limit}.equals('2')">
    <input type="button" value="权限二"/>
    </c:if> 
    </c:forEach>
     
    test里面应该怎么做比较啊?
     
     
     
    建议去看看EL表达式的用法,比较式要写在{}里面 
    <c:if test="${limit=='1'}"><!-- 这里的test应该怎 -->
    <input type="button" value="权限一"/>
    </c:if>
    EL表达式可以直接用==比较两个字符串
  • 相关阅读:
    百万级数据库优化方案
    MySQL架构及优化原理
    性能优化建议
    索引
    sql语句优化(持续更新)
    sql语句优化原理
    常用命令
    常见问题
    三、范围和生命周期
    【UVa】[11582]Colossal Fibonacci Numbers!
  • 原文地址:https://www.cnblogs.com/huapox/p/3516111.html
Copyright © 2011-2022 走看看