无所谓之布 2021-07-17 22:18 采纳率: 50%
浏览 73
已采纳

jsp网页循环显示出文本提交框和按钮,每个按钮是不同的提交功能,这如何实现呢?

大三通信专业的学生,暑期实习培训内容主要是学习java,最后自己制作一个网购网站(连接mysql数据库)目前只学了几天,可能问题有点低级,不喜勿喷,给萌一点帮助吧。
现在遇见一点问题,登录进入网购主页面显示了各个商品的信息(这些商品信息是从数据库中调出来的)展示信息有搜索和分类功能,分类就是显示需要类的所有商品,这在jsp里用<c:for each>循环输出显示的。现在需要在每个商品后面加一个购买数量的文本输入框和提交按钮,每个按钮可以将对应文本框的数据提交至数据库。
这个功能应该怎么实现呢?
目前的一些想法就是给每个按钮添加标签,但是方法不知道怎么用主要是要在循环里显示不同的按钮。
这是主页面的Servlet部分代码__

public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException{
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");

    //获取用户选择的分类
    String uclassNum=request.getParameter("classNum");
    //连接数据库
    String classtrue;
    if("class1".equals(uclassNum) ){
         classtrue  ="饮品";
    }else if("class2".equals(uclassNum)){
         classtrue ="零食";
        
    }else if("class3".equals(uclassNum)){
         classtrue ="服饰";
    }else{
         classtrue ="办公用品";
    }
    ////将下拉框中的ClassNum转化为汉字 传入 数据库中 进行类别搜索
    DbConn conn1 = new DbConn();
    
    String [][]data1 = conn1.getData("select * from commodity where class ='"+classtrue+"'");
    //查找数据库中的类别信息
    
        List list1 = new ArrayList();
        //
    //判断分类属于class? 
    if("class1".equals(uclassNum) ){
        //class1是饮品
    
        //沿用当前的request,传到下一个页面
        
        int j=0;
        
        int i=0;
        
        for(i=0;i<data1.length;i++){
            
            commodity product = new commodity();
            for(j=0;j<data1.length;j++){
                
                product.setId(Integer.parseInt(data1[i][0]));
                product.setCommodity_name(data1[i][1]);
                product.setPrice(Integer.parseInt(data1[i][2]));
                product.setSurplus_stock(data1[i][3]);
                product.setBusinesses(data1[i][4]);
                product.setPicture(data1[i][5]);
                product.setClass1(data1[i][6]);
            }
            
            
            list1.add(product);
        }
        
        
        //调用数据库内容显示所有饮品信息
        request.setAttribute("list1",list1);
        request.getRequestDispatcher("main.jsp").forward(request, response);
        
        
    
    }else if("class2".equals(uclassNum)){
        //class2是零食

int j=0;

        int i=0;
        
        for(i=0;i<data1.length;i++){
            
            commodity product = new commodity();
            for(j=0;j<data1.length;j++){
                
                product.setId(Integer.parseInt(data1[i][0]));
                product.setCommodity_name(data1[i][1]);
                product.setPrice(Integer.parseInt(data1[i][2]));
                product.setSurplus_stock(data1[i][3]);
                product.setBusinesses(data1[i][4]);
                product.setPicture(data1[i][5]);
                product.setClass1(data1[i][6]);
            }
            
            
            list1.add(product);
        }
        //调用数据库内容显示所有饮品信息
        
        request.setAttribute("list1",list1);
        request.getRequestDispatcher("main.jsp").forward(request, response);
        
        //调用数据库内容显示所有零食信息
        
        
    }else if("class3".equals(uclassNum)){
        //class3是服饰
        
        
        //调用数据库内容显示所有服饰信息

int j=0;

        int i=0;
        
        for(i=0;i<data1.length;i++){
            
            commodity product = new commodity();
            for(j=0;j<data1.length;j++){
                
                product.setId(Integer.parseInt(data1[i][0]));
                product.setCommodity_name(data1[i][1]);
                product.setPrice(Integer.parseInt(data1[i][2]));
                product.setSurplus_stock(data1[i][3]);
                product.setBusinesses(data1[i][4]);
                product.setPicture(data1[i][5]);
                product.setClass1(data1[i][6]);
            }
            
            
            list1.add(product);
        }
        
        request.setAttribute("list1",list1);
        request.getRequestDispatcher("main.jsp").forward(request, response);
        
    }else{
        //class4是办公用品
        
        //调用数据库内容显示所有办公用品信息

int j=0;

        int i=0;
        
        for(i=0;i<data1.length;i++){
            
            commodity product = new commodity();
            for(j=0;j<data1.length;j++){
                
                product.setId(Integer.parseInt(data1[i][0]));
                product.setCommodity_name(data1[i][1]);
                product.setPrice(Integer.parseInt(data1[i][2]));
                product.setSurplus_stock(data1[i][3]);
                product.setBusinesses(data1[i][4]);
                product.setPicture(data1[i][5]);
                product.setClass1(data1[i][6]);
            }
            
            
            list1.add(product);
        }
        
        
        request.setAttribute("list1",list1);
        request.getRequestDispatcher("main.jsp").forward(request, response);
        
    }

这是主页面的jsp部分代码__
这就是让分类好的商品在页面上循环显示,现在想在每次循环的时候加一个文本输入框和提交对应文本框内数字的提交按钮,每个按钮可以将对应的值传入Servlet

<form>

    <div>${list1[0].class1 }:</div>
    <table cellspacing="0" border="1" cellpadding="0">
        <div>
            <c:forEach items="${list1 }" var="item" >
                <tr>
                    <td width="50px"><span> ${item.commodity_name}</span></td>
                    <td width="50px"><span>${item.price}</span>    </td>            
                    <td width="100px"><span>${item.businesses}</span></td>
                    <td width="50px"><img src="images/${item.picture}.jpg" width="500px"></td>
                    <td width="80px"><span>${item.class1}</span></td>
                                    
                </tr>
            </c:forEach>
        </div>
    </table>
    </center>
    </form>
        
</form>
  • 写回答

1条回答 默认 最新

  • 砻谷踏碓 2021-07-17 22:41
    关注

    可以的,你每个按钮 这样表示 <input type="button" onclick="todo(${指令id})">
    然后js里定义这个todo(doid){...}

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 7月17日
  • 创建了问题 7月17日

悬赏问题

  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式