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