zoukankan      html  css  js  c++  java
  • EL表达式和JSTL的使用

    一:EL表达式

    1.概述:在jsp开发中,为了获取Servlet域对象中存储的数据,经常要写很多java代码,这样的做法会使JSP页面混乱,难以维护,为此,在JSP2.0规范中提供了EL表达式。它是Expression Language的缩写。

    2.语法:${表达式}

    2.1内置对象:  

    2.1.1获取指定域的对象:

    
    

    <%--初始化数据-- %>
    <%
    pageContext.setAttribute("name", "pValue");
    request.setAttribute("name", "rValue");
    session.setAttribute("name","sValue");
    application.setAttribute("name", "aValue");
    %>

    <%--获取指定作用域的数据--%>
    ${pageScope.name }
    ${requestScope.name }
    ${sessionScope.name }
    ${applicationScope.name }

    2.1.2请求参数

    <%--
      param.xxx  对应 request.getParameter("xxx");
      paramValues.xxx 对应 request.getParameterValues("xxx");
    --%>
          
    ${param.username }
    ${paramValues.hobby }<%--获得一组数据,使用数组 --%>
    ${paramValues.hobby[1] }<%--如果是数组,可以使用下表 --%>

    2.1.3pageContext

    jsp:<%=((HttpServletRequest)pageContext.getRequest()).getContextPath() %>
    el:${pageContext.request.contextPath }

    2.2使用el获得数据

    2.2.1自定义数据,必须放在作用域

    <% 
        String s = "black";    
    %>
    
    ${s }  <%--无法获取,s不在域中 --%>

    2.2.2获得字符串

    <%
         String s = "black";
         pageContext.setAttribute("sss",s);
     %>
    
     ${sss}<br/>
     ${pageScope.sss }
    <%这两个都可以获取到字符串“black”%>

    2.2.3获得数组

    <%
         String[] arr = {"A","B","C"};
         pageContext.setAttribute("arr",arr,PageContext.REQUEST_SCOPE);
     %>

    ${arr }
    ${arr[1]}
    ${arr[2] }

    //上面的PageContext.REQUEST_SCOPE后面介绍

    2.3

    2.3.1

    setAttribute(String name,值,int scope):如果没有指定scope,该属性默认在page范围内,如:pageContext.setAttribute("page","hello");  

    使用pageContext将属性设置在request范围中pageContext.setAttribute("request2","hello" , pageContext.REQUEST_SCOPE);  

    使用pageContext将属性设置在session范围中pageContext.setAttribute("session2","hello" , pageContext.SESSION_SCOPE); 

     使用pageContext将属性设置在application范围中pageContext.setAttribute("app2","hello" , pageContext.APPLICATION_SCOPE);    

    2.3.2 getAttribute(String name,int scope):取得指定范围内的name属性,

    其中scope可以是如下4个值:

     PageContext.PAGE_SCOPE:对应于page范围。 

      PageContext.REQUEST_SCOPE:对应于request范围。 

     PageContext.SESSION_SCOPE:对应于session范围。 

     PageContext.APPLICATION_SCOPE:对应于application范围。
    3.EL执行表达式

    例如:

    ${1+1}

    ${empty user}

    ${user==null?true:false}

    二:JSTL

    1.概述:

    JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同el一样也是要代替jsp页面中的脚本代码。JSTL标准标准标签库有5个子库,但随着发展,目前常使用的是他的核心库

    标签库

    标签库的URI

    前缀

    Core

    http://java.sun.com/jsp/jstl/core

    c

    I18N

    http://java.sun.com/jsp/jstl/fmt

    fmt

    SQL

    http://java.sun.com/jsp/jstl/sql

    sql

    XML

    http://java.sun.com/jsp/jstl/xml

    x

    Functions

    http://java.sun.com/jsp/jstl/functions

    fn

    2.导入安装包:

    从Apache的网站下载JSTL的JAR包。进入        “http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/”网址下载    JSTL的安装包。jakarta-taglibs-standard-1.1.2.zip,然后将下载好的JSTL安装包 进行解压,此时,在lib目录下可以看到两个JAR文件,分别为jstl.jar和standard.jar。     其中,jstl.jar文件包含JSTL规范中定义的接口和相关类,standard.jar文件包含用于    实现JSTL的.class文件以及JSTL中5个标签库描述符文件(TLD)

     

    使用jsp的taglib指令导入核心标签库

     3.一个简单的jsp文件

    然后启动Tomcat服务器,在地址栏输入地址访问test.jsp此时浏览器显示:

    4.JSTL核心库的常用标签

    4.1   if标签:

    <c:if test=””>     其中test是返回boolean的条件

    如果visitCount==1判定为真,则浏览器页面打印:This is you first vist........!

    4.2    forEach标签

    4.2.1

    for(int i=0;i<=5;i++){
        System.out.println(i);
    }
    <%--对应如下:--%> 
    <c:forEach begin
    ="0" end="5" var="i" > ${i }<br/> </c:forEach>

    4.2.2

    <%
        String[] fruits = {"apple","orange","grape","banana"};
        pageContext.setAttribute("f",fruits);
    %>
    <c:forEach var="name" items="<%=fruits %>">
        ${name }
    </c:forEach>

    items属性用于指定将要迭代的集合对象

  • 相关阅读:
    最近公共祖先LCA Tarjan 离线算法
    HDU 2586 How far away? LCA 转化成RMQ
    最近公共祖先 Least Common Ancestors(LCA)算法 --- 与RMQ问题的转换
    RMQ ---- ST(Sparse Table)算法
    二维计算几何系列(一) -------- 数据结构
    Goalng基础语法-输入和输出
    Golang基础语法-运算符
    Golang基础语法-数据类型
    Golang基础语法-常量
    Golang基本语法-变量
  • 原文地址:https://www.cnblogs.com/black-mcy/p/10040940.html
Copyright © 2011-2022 走看看