zoukankan      html  css  js  c++  java
  • Spring 梳理-el表达式和jstl

    1. JSP中有这么几种元素
      1. 1: Scriptlet

        <% ... %>

        2: 声明元素 <%! ... %>

        3: Java表达式 <%= ... %>

        4: 指令元素 <%@ ... %>

        5: EL表达式 ${ ... }

        6: 标准动作元素 <jsp:*** ... />

        7: 非标准动作 <***:*** ... />

    2. EL表达式
      1. 用来代替<%= %>表达式脚本的
      2. 主要用于四个域中取出数据(application,request,session,page),即简化getAttribute…等操作的。
      3. 如果这样写${name},不指定域,则会从小域到大域依次查找。
      4. 示例
      5. <%
            request.setAttribute("name", "Feathers");
        %>
        
        name为:${requestScope.name} <!-- 即可取出request域中key为name的值 -->
        ${student.name}表示输出student对象的name属性值,等效于<%=student.getName()%>
      6. EL 提供 . 和 [ ] 两种运算符来导航数据。下列两者所代表的意思是一样的:

        ${sessionScope.user.sex}等于${sessionScope.user["sex"]}

        . 和 [ ] 也可以同时混合使用,如下:

        ${sessionScope.shoppingCart[0].price}

        回传结果为shoppingCart中第一项物品的价格。

        不过,以下两种情况,两者会有差异:

        (1) 当要存取的属性名称中包含一些特殊字符,如. 或 – 等并非字母或数字的符号,就一定要使用 [ ],

        例如:${user.My-Name }

        上述是不正确的方式,应当改为:${user["My-Name"] }

      7. 属性范围(jstl名称)

        EL中的名称

        Page

        PageScope

        Request

        RequestScope

        Session

        SessionScope

        Application

        ApplicationScope

        我们也可以指定要取出哪一个范围的变量:

        范例

        说明

        ${pageScope.username}

        取出Page范围的username变量

        ${requestScope.username}

        取出Request范围的username变量

        ${sessionScope.username}

        取出Session范围的username变量

        ${applicationScope.username}

        取出Application范围的username变量

      8. JSP有9个隐含对象,而EL也有自己的隐含对象。EL隐含对象总共有11 个

        隐含对象

        类型

        说明

        PageContext

        javax.servlet.ServletContext

        表示此JSP的PageContext

        PageScope

        java.util.Map

        取得Page范围的属性名称所对应的值

        RequestScope

        java.util.Map

        取得Request范围的属性名称所对应的值

        sessionScope

        java.util.Map

        取得Session范围的属性名称所对应的值

        applicationScope

        java.util.Map

        取得Application范围的属性名称所对应的值

        param

        java.util.Map

        如同ServletRequest.getParameter(String name)。回传String类型的值

        paramValues

        java.util.Map

        如同ServletRequest.getParameterValues(String name)。回传String[]类型的值

        header

        java.util.Map

        如同ServletRequest.getHeader(String name)。回传String类型的值

        headerValues

        java.util.Map

        如同ServletRequest.getHeaders(String name)。回传String[]类型的值

        cookie

        java.util.Map

        如同HttpServletRequest.getCookies()

        initParam

        java.util.Map

        如同ServletContext.getInitParameter(String name)。回传String类型的值

      9. pageContext

        我们可以使用 ${pageContext}来取得其他有关用户要求或页面的详细信息。下表列出了几个比较常用的部分

        Expression

        说明

        ${pageContext.request.queryString}

        取得请求的参数字符串

        ${pageContext.request.requestURL}

        取得请求的URL,但不包括请求之参数字符串,即servlet的HTTP地址。

        ${pageContext.request.contextPath}

        服务的webapplication的名称

        ${pageContext.request.method}

        取得HTTP的方法(GET、POST)

        ${pageContext.request.protocol}

        取得使用的协议(HTTP/1.1、HTTP/1.0)

        ${pageContext.request.remoteUser}

        取得用户名称

        ${pageContext.request.remoteAddr}

        取得用户的IP地址

        ${pageContext.session.new}

        判断session是否为新的,所谓新的session,表示刚由server产生而client尚未使用

        ${pageContext.session.id}

        取得session的ID

        ${pageContext.servletContext.serverInfo}

        取得主机端的服务信息

      10. EL关系运算符

        关系运算符

        说明

        范例

        结果

        == 或 eq

        等于

        ${5==5}或${5eq5}

        true

        != 或 ne

        不等于

        ${5!=5}或${5ne5}

        false

        < 或 lt

        小于

        ${3<5}或${3lt5}

        true

        > 或 gt

        大于

        ${3>5}或{3gt5}

        false

        <= 或 le

        小于等于

        ${3<=5}或${3le5}

        true

        >= 或 ge

        大于等于

        5}或${3ge5}

        false

    3. jsp指令有三种:

      • page指令
      • include指令
      • taglib指令
    4. JSTL:
      1. <%@ taglib prefix="c"   uri="http://java.sun.com/jsp/jstl/core" %>
  • 相关阅读:
    Action直接访问Servlet API
    Struts2与Struts1的对比
    参入github上的开源项目的步骤
    TortoiseSVN中图标的含义
    eclipse 快捷键
    base(function strchr)
    1
    Java 关于路径
    java初阶
    关于C++中计时的方法
  • 原文地址:https://www.cnblogs.com/jiangtao1218/p/9740391.html
Copyright © 2011-2022 走看看