EL表达式、JSTL标签库

本文详细介绍了EL表达式的使用方法及其在不同作用域中的应用,并深入探讨了JSTL标签库的核心标签,包括输出、条件判断、循环等,帮助读者掌握JSP页面开发的关键技术。

一、EL表达式使用

1.El表达式可以在jsp中使用,EL表达式是用"${}"括起来的脚本
2.EL表达式提供了获取对象以及属性的简单方式。
    例如:${ person } 相当于 request.getAttribute("person")或session.getAttribute("person")
                ${person.age} //获取对象中的属性
        ${person.sex} 
    代码中先使用useBean行为将Person对象放置到request中,在使用El表达式读取对象
3.El从隐藏对象中获取内容
    ${ param.foo } 读取地址栏参数 相当于request.getParameter("foo")
    ${ initParam.foo } 读取初始化参数 相当于config.getInitParameter("foo")
    ${ header.host } 读取head参数 相当于request.getHeader("host")

4.jsp中有九个隐含对象,在EL中的对应

隐含对象

类型

说明

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类型的值

cookie

Java.util.Map

如同:HttpServletRequest.getCookie()

initParam

Java.util.Map

如同:

HttpContext.getInitParamter(String name)

 

 

 

5.在jsp中通过EL获取参数时查找规则

    在jsp页面里面获取application中的内容:${applicationScope.msgA}

                                   获取session中的内容: ${sessionScope.msgS}

                                   获取request中的内容:${requestScope.msgR}

    表达式中的applicationScope….也可以省略${msgA}….系统会在动查找,查找范围是page---request----session----application。

6.EL获取页面参数值

     若里面存放的是javabean对象类型user的值是可以用:${user.name},${user.password}获得。

     如果javabean中含有集合类型的参数<list>phones可用${user.phones[0]}获得javabean中集合类型参数中的第一个值。

     若传进这个页面的内置对象中含有集合类型的参数 <list>users,可用:${users[0].name}获得。

     若一个页用<a href=”p2.jsp?n=3&m=4”>下一页面</a>在下一页面可用${param.n}的n的值${param.m}获得m的值。

7.El也可以获取cookie和web.xml的值

   向页面中添加cookie的值 response.addCookie(”username”,”Tom”);则在下一页面可用${cookie.username.value}获得cookie中值。

   对于一些初始化参数:如在web.xml中设置

    <context-param>

       <param-name>encoding</param-name>

       <param-value>gb2312</param-value>

    </context-param>

     用${initParam.encoding}获得encoding的值。

8.  El 可以和常量混用:如果session里面保存有key=”str” value=”河”,则可以用${session.str}南 在页面上显示 “河南”。相当于<%=session.getAtribute(str).toString()+”南”%>

    EL中也可以进行 算数运算 也可以进行 逻辑运算

二、jstl标签库

1.导入jstl的核心标签库<%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core”%>

2.在页面输出内容用标签;<c:out ></c:out>

<%
       session.setAttribute("str","<b>你是好人!</b>");
     %>
    <c:out value="${str}" default="我也是好人" escapeXml="false"></c:out>

3.保存数据用标签<c:set> </c:set>,session中保存变量名为he变量值为hello

<c:set value="hello" var="he" scope="session"></c:set>

4.删除值<c:remove></c:remove>,删除session中的str变量名。

<c:remove var=”str” scope=”session”></c:remove>

5.条件选择标签<c:if></c:if>,系统自动从sessionrequest,等中查找变量并进行判断

<% session.setAttribute("num",50); %>
    <c:if test="${num >= 50}">
               及格
    </c:if>
    <c:if test="${num < 50}">
               不及格
</c:if>

6.多重判断标签<c:choose></c:choose>

  <% session.setAttribute("sum",75); %>
    <c:choose>
       <c:when test="${sum>=90&&sum<=100}">优秀</c:when>
       <c:when test="${sum>=80&&sum<90}">良好</c:when>
       <c:when test="${sum>=60&&sum<80}">中等</c:when>
       <c:when test="${sum>=0&&sum<60}">不及格</c:when>
       <c:otherwise>信息无效</c:otherwise>
</c:choose>

7.循环标签<c:forEach></c:forEach>,打印集合books中的内容

<c:forEach items="books" var="book">
    ${book}
    </c:forEach>

  如果是对象类型的集合

<c:forEach items="stus" var="stu">
    ${stu.name}, ${stu.password }
</c:forEach>

复杂集合,HashMap类型的集合

<c:forEach items="hm" var="content">
    ${content.key},${content.value }
</c:forEach>

8.打印出有分割符分割开的一个字符串<c:forTokens></c:forTokens>

 <c:forTokens items=”字符串” delims=”分隔符” var=”子串名”>
      ${子串名}
</c:forTokens>

9.显示固定格式的日期时间

   首先要引入标签库<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"prefix="fmt"%>

<% Date date = new Date() ;
 %>
  <fmt:formatDate value="${date}" pattern="yyyy-MM-dd"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值