JavaEE项目中改变表格结构jsp+taglib

问题描述

在写web项目时,需要将数据动态展示出来,就需要表格标签的动态添加,在不用到JavaScript的情况下,如何使标签动态添加呢,可以使用jsp技术中的<%@ taglib %>,JSTL所支持的迭代标签<c:forEach>

问题解决

1、在官网下载两个关键的包(放在哪里都可以)(https://tomcat.apache.org/taglibs/standard/)
在这里插入图片描述
在这里插入图片描述2、将包导入到项目中,我这里以IDEA为例:把这两个包复制粘贴到web项目目录下如图所示处
在这里插入图片描述
复制粘贴后,右键选择导入到库,如图所示
在这里插入图片描述
3、将如下代码放到.jsp代码的顶部(完整代码放最下面),如图所示
在这里插入图片描述
4、将迭代标签<c:forEach>写入需要迭代的表格标签"< tr>"之前,如图所示,具体的用法可以去看<c:forEach>标签的语法定义用法(https://blog.csdn.net/xd15010130025/article/details/89476815),这里不再过多阐述

界面展示

第一次选购

在这里插入图片描述

第二次选购

在这里插入图片描述

完整代码

<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>



<%
    String name = "";
    List lis = new ArrayList();  // 用来迭代的对象
    float price = 0;
    float sum = 0;
    int num = 0;
    boolean flag = false;  // 判断是否选购商品
    String[] nums = request.getParameterValues("buy");

    for (int i = 0; i < nums.length; i++) {
        if (!nums[i].equals("0")) {
            Goods.Select(i);  // 注意数据库中id要从0开始!!
            name = Goods.GetName();
            num = Integer.parseInt(nums[i]);
            price = Float.parseFloat(Goods.GetPrice());
            sum += num * price;
            flag = true;
            String[] liss = {name, Integer.toString(num), Float.toString(price), Float.toString(num*price)};
            lis.add(liss);
        }
    }
    request.setAttribute("lis", lis);  // !!!!!很关键!!!调试了很久发现是忘记加这一步!!
    if (flag == false) {
        out.println("<script type=\"text/javascript\">");
        out.println("alert(\"未选购商品!请重新选购!\");");
        out.println("</script>");
        response.setHeader("refresh", "1;URL=shopping.jsp");
    }
%>

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

<head>
    <title>购物</title>
</head>

<body>
    <table>
        <thead>
            <tr>
                <th>商品名</th>
                <th>数量</th>
                <th>单价</th>
                <th>总价</th>
            </tr>
        </thead>
        <tbody>
    <c:forEach items="${lis}" var="li">
        <tr>
            <td>${li[0]}</td>
            <td>${li[1]}</td>
            <td>${li[2]}</td>
            <td>${li[3]}</td>
        </tr>
    </c:forEach>
        <tr>
            <td></td>
            <td></td>
            <td></td>
            <td><%=sum%></td>
        </tr>
        </tbody>
    </table>
    <br>
    <botton><a href="shopping.jsp">重新选购</a></botton>
    <br>
    <botton><a href="LoginSuccess.jsp">返回系统首页</a></botton>
</body>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
【资源说明】 JSP实验基于JavaWeb的机房预约系统源码+sql数据库+实验说明.zip 该项目是个人毕设项目源码,评审分达到95分,都经过严格调试,确保可以运行!放心下载使用。 该项目资源主要针对计算机、自动化等相关专业的学生或从业者下载使用,也可作为期末课程设计、课程大作业、毕业设计等。 具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现类似其他功能。 编写一个首页,该页面能够自动跳转到WelcomeServlet 编写一个简单的机房预约系统,通过该系统实验室管理员可以完成机房的预约登记操作; 编写展示WelcomeServlet,该Servlet映射到首地址“/”,通过Java Bean获取所有机房的预约信息,并将数据转发到reservation .jsp页面; 编写机房预约页面(reservation .jsp),该页面能够显示所有的机房预约信息,预约界面应该以表格的形式展示每个机房哪些时间段可选,哪些时间段已被哪位教师占用;同时管理员可以在该页面上完成预约登记操作,登记信息包括:教师、机房、时间段。 编写样式表reservation.css,利用DIV+CSS布局对机房预约页面(reservation .jsp)进行美化; 编写JavaScript脚本reservation.js,该脚本主要功能为: (1)处理实验室管理员对时间段、机房的选择操作(可以通过在预约表格上单击单元格的方式来选择某机房的预约时间段,时间段选与否应有状态区别); (2) 校验预约信息的正确性(当管理员单击已被占用的机房时间段或输入错误的教师信息时报错) 编写ReservationServlet,该Servlet能够接收页面传过来的预约数据,并能够调用Java Bean完成相关预约操作; 编写一个预约处理类ReservationBean,该处理类能够通过JDBC实现预约信息的查询以及预约信息的处理。 简易机房预约系统 拙作 初次接触Servlet做的简单玩意 使用Tomcat10.0.17部署 在JDK16环境下通过测试 默认使用H2数据库,数据库位置为D:\h2db。 如需更改可至src/main/java/beans/ReservationBean.java第57-61行修改数据库驱动(类型)及数据库位置。 # 预览 静态页面预览地址:https://stallion-x.github.io/RoomReservationSystem/

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Yarhanry

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

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

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

打赏作者

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

抵扣说明:

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

余额充值