• EL与JSTL注意事项汇总


    EL使用表达式(5一个 问题)
    JSTL使用标签(5问题)
    什么是EL。它可以用做?
    EL全名Expression Language在JSP使用页面
    格公式${表达式}
    样例${requestScope.customer.id}
    功能:
    1.才四个域对象中取出属性数据显示


    (pageContext.request.session.application)


    2.取出请求參数数据显示


    <%
    request.setAttribute("person",new Person("xfzhanag",18));
    %>
    Map<String,Person> map=new HashMap<String,Person>();
    map.put("A",new Person("AA",12));
    map.put(""B",new Person("BB",13));
    map.B.age${requestScope.B.age};
    map.B.age${requestScope.['B'].age};


    ${requestScope.person.name};
    ${requestScope.person['name']};
    List里面的第二个数据
    <%


    <%
    List list=new ArrayList();
    list.add("a");
    list.add("b");
    list.add("c");
    request.setAttribute("List",list);


    %>


    ${requestScope.List[1]};
    ${requestScope.List['name']};


    我的年龄:<requestScope.person.name><br/>
    //什么方便?为什么有个中括号?
    /*
    一种情况?
    ${requestScope['my person'].name};
    map.put("my person",new Person("Xxx",12));


    */
    EL能进行的运算?
    算数运算(+,-, * ,/ ,%)
    关系运算(>,<,==,!=)
    逻辑运算(&&,||)
    empty运算(推断一个数据是否是空)
    (null,空字符串,空集合)


    ${empty name}<br>
    ${empty list}<br>
    ${empty person}<br>


    三目条件运算
    ${requestScope.person.age>18 ? '成年' : '未成年' }
    ${person.age>18 ? '成年' : '未成年' }
    <!--不加隐含对象。如何找到的呢?
    pageScope,requestScope,
    sessionScope,applicationScope
    从小到大的一个范围!
    -->
    <%
    request.setAttribute("list",new ArrayList());
    request.setAttribute("name","");
    request.setAttribute("person","new Pseron("Xxx",19));
    %>
    隐含对象
    PageContext javax.servlet.ServletContext
    PageScope java.uti.Map
    RequestScope java.util.Map
    sessionScope java.util.Map
    applicationScope java.util.Map
    param java.util.Map
    EL怎样获取对象的内部数据?
    获取的方式
    通过点(.)来取数据
    通过中括号[]来取数据
    对象的类型
    一般对象
    Map对象
    数组/List/Set
    EL的不足在哪?
    不能遍历。逻辑推断差
    JSTL(5个问题)
    什么是JSTL,它能做什么?
    JSTL为jsp stardard tag library在jsp页面使用
    功能:实现数据基本输入输出,流程控制,循环,国际化等功能
    JSTL  前置名称               URI 范例
    核心标签库     c http://sun.com/jsp/jstl/core c:out
    I18格式标签库 fmt http://sun.com/jsp/jstl/xml


    fmt:formDate
    SQL标签库     sql http://sun.com/jsp/jstl/sql sql:query
    xml标签库     xml http://sun.com/jsp/jstl/fmt x:forBach
    函数标签库     fn http://sun.com/jsp/jstl/function fn:split
    为什么使用JSTL?
    在jsp中使用jsp脚本+jsp表达式也能够做循环输出,太麻烦
    EL不能做遍历工作
    JSTL能做这些并且与jsp和html的标签能够非常好的结合
    JSTL高速入门
    1.导入JSTL相关的jar包:
    jstl.jar
    standard.jar


    2.在jsp文件里导入JSTL的c标签库
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" perfix="c" 


    %>


    3
    <%
    List<String> list=new ArrayList<String>();
    list.add("A");
    list.add("B");
    list.add("C");
    request.setAttribute("list",list);


    %>
    <c:forEach items="${requestScope.list}" var="item">
    ${item}<br/>
    </c:forEach>


    jstl怎样做流程控制?
    c:if(一重条件推断)
    c:choose 
    c:when


    //需求1:假设我的年龄小于18就输出未成年成(红色字体)
    <c:if test="${person.age<18}">
    <font color="red">未成年人</font>
    </c:if>


    需求2:假设年龄大于60,就输出’老头子‘
    假设年龄小于18,就输出"小屁孩"
    其它。就输出"成年人"
    <br/>
    <c:choose>
    <c:when test="${person.age>60}">老头子


    </c:when>
    <c:when test="${person.age<18}">小屁孩


    </c:when>
    <c:otherwise>成年人</c:otherwise>
    </c:choose>
    jstl怎样做遍历?
    <%
    Map<String,Person> map=new 


    HashMap<String,Person>();
    map.put("1",new Person("AA",23));
    map.put("2",new Person("BB",23));
    map.put("3",new Person("CC",23));
    map.put("4",new Person("DD",23));
    map.put("5",new Person("EE",23));
    map.put("6",new Person("FF",23));
    request.setAttribute("personMap",map);
    %>
    <h3>将数据用表格显示出来</h3>
    <table border="1" style="300px">
    <tr>
    <td>ID</td>
    <td>姓名</td>
    <td>年龄</td>
    </tr>
    <c:forEach items="${personMap}" var="item">
    <!--${itm.class}-->
    <tr>
    <td>${item.key}</td>
    <td>${item.value.name}</td>
    <td>${item.value.age}</td>
    </tr>
    </table>

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    Windows Server 2003下ASP.NET无法识别IE11的解决方法
    SQL Server2005中使用XML-数据类型、查询与修改
    连接SQLServer时提示“但是在登录前的握手期间发生错误。 (provider: SSL Provider, error: 0
    无法将类型为 excel.applicationclass 的 com 强制转换为接口类型 的解决方法。
    C# WinForm使用Aspose.Cells.dll 导出导入Excel/Doc 完整实例教程
    技巧 获取电脑硬件信息 -转发
    浏览器无需下载插件 解决网页长截图的小技巧 -转发
    note 9 列表、时间复杂度、排序
    note 8 字符串
    note 7 递归函数
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4640701.html
Copyright © 2020-2023  润新知