EL表达式JSTL标签库

EL取出域对象数据

  • application.setAttribute(String key,Object value)
    • EL取出 ${applicationScope.key}
  • session.setAttribute(String key,Object value)
    • EL取出 ${sessionScope.key}
  • request.setAttribute(String key,Object value)
    • EL取出 ${requestScope.key}
  • pageContext.setAttribute(String key,Object value)
    • EL取出 ${pageScope.key}
  • 简化写法 ${key} : EL自动从最小域开始找,一旦找到就不找
  • EL友好的地方,取出不出来,不显示null,显示 “空串”

EL取出域对象数据(String对象):

<body>
  <%--
     EL表达式取出域对象中的数据
     向域对象存储数据
     EL取出

     EL取出不出来,不显示null,显示""
  --%>
<%
    //ServletContext域对象存储数据
    application.setAttribute("heima","javaApplication");
    //session域对象存储数据
    session.setAttribute("heima","javaSession");
    //request域对象存储数据
    request.setAttribute("heima","javaRequest");
    //pageContext域对象存储数据
    pageContext.setAttribute("heima","javaPageContext");
%>
<%-- 取出 ServletContext--%>
<%=application.getAttribute("heima")%>
${applicationScope.heima}  <br>

  <%-- 取出 session--%>
${sessionScope.heima} <br>

  <%-- 取出 request--%>
${requestScope.heima}<br>

  <%-- 取出 pageContext--%>
${pageScope.heima} <br>

${heima}
</body>

EL取出域对象数据(自定义对象,集合List,Map)

自定义对象
${user.addr.city}
<%-- list集合索引[索引]  --%>
${list[1].addr.city}
<%--Map 集合索引[索引]  --%>
${map.u2.addr.city}

EL运算符

<body>
  <%--
     El运算符
  --%>
  <%
      pageContext.setAttribute("num",4);
  %>

${num>4?"大于4":"不大于4"}  <br>

<%--
   EL判空运算
   empty 判断空
   如果是空,就是true

   数组长度>0,就不是空
   长度.length==0

   集合size()>,就不是空
 --%>
<%
    String[] str = new String[1];
    request.setAttribute("str",str);
%>

${ empty str} <br>

<%
    List<String> list = new ArrayList<String>();
    list.add(null);
    request.setAttribute("list",list);
%>
${empty list}

</body>

记录上一次的用户名## EL运算符

<body>
  <%--
     El运算符
  --%>
  <%
      pageContext.setAttribute("num",4);
  %>

${num>4?"大于4":"不大于4"}  <br>

<%--
   EL判空运算
   empty 判断空
   如果是空,就是true

   数组长度>0,就不是空
   长度.length==0

   集合size()>,就不是空
 --%>
<%
    String[] str = new String[1];
    request.setAttribute("str",str);
%>

${ empty str} <br>

<%
    List<String> list = new ArrayList<String>();
    list.add(null);
    request.setAttribute("list",list);
%>
${empty list}

</body>

记录上一次的用户名

在这里插入图片描述

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    /**
     *  获取提交的用户名密码
     *  判断和tom,123匹配
     *  如果匹配
     *    重定向到首页
     *  不匹配
     *    转发回登录页面
     */
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    //获取复选框  value="rem"
    String rem = request.getParameter("rem");
    if("rem".equals(rem)){
        Cookie cookie = new Cookie("username",username);
        cookie.setMaxAge(60*10);
        cookie.setPath(request.getContextPath());
        response.addCookie(cookie);
    }

    if("tom".equals(username) && "123".equals(password)){
        response.sendRedirect(request.getContextPath());
    }else{
        request.getRequestDispatcher("/login.jsp").forward(request,response);
    }
}

login.jsp

${cookie.username.value}

引出JSTL,“c” 标签

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

if标签

<body>
  <%--
     c:if标签,判断使用
       属性: test="true"
       执行标签体内容

   --%>
  <%
      pageContext.setAttribute("num",4);
  %>
 <c:if test="${num>=5}">
     <div style="color: red">我是红色</div>
 </c:if>

<c:if test="${num<5}">
    <div style="color: blue">我是蓝色</div>
</c:if>
</body>

foreach标签

<body>
    <%--
      foreach标签
      页面输出5个hello

      属性:
        begin="1"开始值   int i=1;
        end="5"结束值     i<=5
        var="i"定义变量,保存是循环中的值
          自动的存储到pageContext域
        step="2" 步长  i+=2
     --%>
 <c:forEach begin="1" end="5" var="i" step="2">
     hello ${i}<br>
 </c:forEach>
</body>
<body>
    <%--
      foreach标签
      页面输出5个hello

      属性:
        begin="1"开始值   int i=1;
        end="5"结束值     i<=5
        var="i"定义变量,保存是循环中的值
          自动的存储到pageContext域
        step="2" 步长  i+=2
     --%>
 <c:forEach begin="1" end="5" var="i" step="2">
     hello ${i}<br>
 </c:forEach>


    <hr>

 <%
     String[] str = {"e","d","c","b","a"};
     pageContext.setAttribute("str",str);
 %>
<%--
  foreach标签
  属性:
    items="遍历容器"
    var="变量名"  变量表示数组中的元素
       会自动保存pageContext域
       for(String s : str){

       }
    varStatus="变量"循环状态对象
--%>
 <c:forEach items="${str}" var="s" varStatus="vs">
     ${s}  ${vs.count} <br>
 </c:forEach>


<%
    Address addr = new Address();
    addr.setCity("北京");
    addr.setArea("昌平");

    Address addr2 = new Address();
    addr2.setCity("天津");
    addr2.setArea("武清");

    List<Address> list = new ArrayList<Address>();
    list.add(addr);
    list.add(addr2);

    pageContext.setAttribute("list",list);
%>

<c:forEach items="${list}" var="addr">
    ${addr.city} <br>
</c:forEach>
</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值