JSTL中的Core标签库

一、目标

  • 掌握JSTL中的Core标签库中常用标签的语法和使用。
  1. 需求分析

在页面中JSTL的核心标签库使用非常广泛,本案例将使用其中几个常用标签模拟查询用户订单并在页面显示的效果。

  1. 设计思路(实现原理)
  1. 编写JSTLCore类,在里面模拟登录后的用户封装订单并返回页面显示,
  2. 编写Orders类,用来模拟存储订单信息的实体类,
  3. 编写JSTLCore.jsp用户订单查看页面,用来模拟查看用户订单信息,
  4. 配置web.xml文件
  5. 通过浏览器访问JSTLCore.jsp,展现页面servlet处理响应信息。

 

二、案例实现                     

编写JSTLCore类,其代码如下:

public class JSTLCore extends HttpServlet{

    protected void doGet(HttpServletRequest req, HttpServletResponse resp)

           throws ServletException, IOException {

       List<Orders> orderList=new ArrayList<>();

       Orders orders1=new Orders();

       orders1.setId("00551");

       orders1.setAddress("北京昌平");

        orders1.setPhone("13785594487");

       Orders orders2=new Orders();

       orders2.setId("00552");

       orders2.setAddress("河北唐三");

        orders2.setPhone("15855594483");

       orderList.add(orders1);

       orderList.add(orders2);

      

       req.setAttribute("username", "张三");

       req.setAttribute("orders", orderList);

    req.getRequestDispatcher("/JSTLCore.jsp").forward(req, resp);

    }

    protected void doPost(HttpServletRequest req, HttpServletResponse resp)

           throws ServletException, IOException {

       doGet(req, resp);

    }

}

 

启动Tomcat服务器,在地址栏中输入http://localhost:8080/chapter07/JSTLCore.jsp,浏览器显示的结果如下图所示:

 

然后点击上方的登录链接,再查看页面效果,浏览器显示的结果如下图所示:

 

 

编写JSTLCore.jsp用户订单查看页面

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8" import="java.util.*" %>

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

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body >

   

    <!-- 第一个If语句 -->

    <c:if test="${cookie.userName.value ne 'zhangsan' }">

   

       <!-- 登录跳转连接 -->

       <c:url value="http://localhost:8080/chapter07/JSTLCore" var="myURL" scope="page">

       </c:url>

       <a href="${pageScope.myURL}">您好,请先登录</a>

      

       <!-- 注册连接 -->

       <c:url var="heURL" value=" ">

       </c:url>

       <a href="${myURL}">免费注册</a><br/>

      

      

       <!-- 设置cookie -->

       <%

           String N=null;

       N=(String)request.getAttribute("username");

           Cookie cookie =new Cookie("userName",N);

           response.addCookie(cookie);

           cookie.setMaxAge( 10 );

       %><br/><br/><br/>

    </c:if>

   

   

    <!-- 第二个If语句 -->

    <c:if test="${cookie.userName.value eq 'zhangsan'}">

    张三先生/女士,您好

       <!--退出连接 -->

       <c:url var="exitURL" value=" ">

       </c:url>

           <a href="${myURL}">退出</a><br/><br/><br/>

    </c:if>

       <c:choose>

           <c:when test="${cookie.userName.value eq 'zhangsan'}">

           <!--输出表格 -->  

               <table  border="1" >

                       <tr>

                       <td>ID</td>

                           <td>订单编号</td>

                           <td>邮寄地址</td>

                           <td>联系电话</td>

                           <td>操作</td>

                       </tr>

                     

                      <c:forEach items="${orders}" var="item" varStatus="status">

                           <tr>

                               <td>${status.count }</td>

                               <td>${item.id}</td>

                               <td>${item.address}</td>

                               <td>${item.phone}</td>

                               <td><a href="*">修改</a>  <a href="*">删除</a></td>

                           </tr>

                      </c:forEach>

                </table>

           </c:when>

          

          

           <c:otherwise>

           <!-- 负责第二种查找不到的情况-->

               查询订单orders集合为空

           </c:otherwise>

       </c:choose>

</body>

</html>

 

总结

本案例中综合使用了JSTL中的Core标签库中的几个常用标签完成了上述案例效果,其中使用<c:if>标签判断用户登录状态,然后在后台默认用户登录查询相关订单后,通过<c:choose>标签及其相关子标签以及<c:forEach>标签控制循环展示所有订单信息。

 

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码敲上天.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值