博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高级参数绑定(数组和List绑定)
阅读量:5888 次
发布时间:2019-06-19

本文共 3228 字,大约阅读时间需要 10 分钟。

1.绑定数组:

(1) 需求

在商品列表页面选中多个商品,然后删除。

(2). 需求分析

功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递给Controller,根据商品id删除商品信息。

我们演示可以获取id的数组即可

(4). Jsp修改

修改itemList.jsp页面,增加多选框,提交url是queryItem.action

查询条件:
商品id 商品名称
商品列表:
选择 商品名称 商品价格 生产日期 商品描述 操作
${item.name } ${item.price }
${item.detail } 修改

页面选中多个checkbox向controller方法传递

本身属于一个form表单,提交url是queryItem.action

(4) Controller

Controller方法中可以用String[]接收,或者pojo的String[]属性接收。两种方式任选其一即可。

定义QueryVo,如下图:

 

 

ItemController修改queryItem方法:

/** * 包装类型 绑定数组类型,可以使用两种方式,pojo的属性接收,和直接接收 *  * @param queryVo * @return */@RequestMapping("queryItem")public String queryItem(QueryVo queryVo, Integer[] ids) {    System.out.println(queryVo.getItem().getId());    System.out.println(queryVo.getItem().getName());    System.out.println(queryVo.getIds().length);    System.out.println(ids.length);    return "success";}

 

 

效果,如下图:

 

 

 

2. 将表单的数据绑定到List

(1) 需求

实现商品数据的批量修改。

 

(2). 开发分析

开发分析

1. 在商品列表页面中可以对商品信息进行修改。

2. 可以批量提交修改后的商品数据。

 

(3). 定义pojo

List中存放对象,并将定义的List放在包装类QueryVo中

使用包装pojo对象接收,如下图:

 

 

 

(4)JSP改造

前端页面应该显示的html代码,如下图:

 

 

 

分析发现:name属性必须是list属性名+下标+元素属性。

Jsp做如下改造:

"/>
修改

${current} 当前这次迭代的(集合中的)项

${status.first}   判断当前项是否为集合中的第一项,返回值为true或false

${status.last}    判断当前项是否为集合中的最

varStatus属性常用参数总结下:

${status.index}   输出行号,从0开始。

${status.count}   输出行号,从1开始。

${status.后一项,返回值为true或false

begin、end、step分别表示:起始序号,结束序号,跳跃步伐。

 

1.1.1. 效果

这里只演示List的绑定,能够接收到list数据。

可以拿到数据即可,不做数据库的操作。

 

测试效果如下图:

 

 

注意:接收List类型的数据必须是pojo的属性,如果方法的形参为ArrayList类型无法正确接收到数据。

 

 

 

 

例如:采用下面方式传递list集合

package cn.xm.jwxt.queryVo;import cn.xm.jwxt.bean.trainScheme.Trainningcapacitybaseinfo;import java.util.List;/** * @Author: qlq * @Description 接收list参数的vo * @Date: 17:56 2018/5/2 */public class ListVo {    /**     * 接收培养方案能力集合     */    private List
trainningcapacitybaseinfos; public List
getTrainningcapacitybaseinfos() { return trainningcapacitybaseinfos; } public void setTrainningcapacitybaseinfos(List
trainningcapacitybaseinfos) { this.trainningcapacitybaseinfos = trainningcapacitybaseinfos; }}

 

package cn.xm.jwxt.bean.trainScheme;public class Trainningcapacitybaseinfo {    private Integer capacityid;    private String trainingschemeid;    private String capacitysort;    private String capacityname;    private String capacitydescription;    private String remark;        ...get set... }

 

 

Controller代码:

@RequestMapping("/addTrainScheme")//保存培养方案基本信息和培养方案能力信息    public String addTrainschemeinfo(Trainschemeinfo trainschemeinfo, ListVo listVo){        String result = null;        try {//            result = trainschemeinfoService.addTrainschemeinfo(trainschemeinfo, trainningcapacitybaseinfos)?"添加成功":"添加失败";        } catch (Exception e) {            result="添加失败";            logger.error("插入培养方案出错!",e);        }        return result;    }

 

 

前台传的数据格式:

 

转载地址:http://fkgix.baihongyu.com/

你可能感兴趣的文章
欲望永恒饥饿(转自学长)
查看>>
IIS发布网站出现“未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。”的解决方法...
查看>>
web.config中配置数据库(多数据)连接的两种方式
查看>>
给图片加上某种颜色的蒙版
查看>>
Spring Boot Hikari
查看>>
Java的进程内缓存框架:EhCache (转)
查看>>
2018年4月13日,祝自己24岁生日快乐!
查看>>
实现一个涂抹擦除效果
查看>>
Unity PhysicsScene测试
查看>>
CSS行高——line-height
查看>>
WPF成长之路------翻转动画
查看>>
Html列表分页算法
查看>>
JS自学笔记03
查看>>
vim 加密(crypt)文本文档
查看>>
理解父类引用指向子类对象
查看>>
BZOJ-2763: [JLOI2011]飞行路线 (SPFA分层图)
查看>>
make、make clean、make install、make uninstall、make dist、make distcheck和make distclean
查看>>
华为内部面试题库---(5)
查看>>
JDK动态代理实现
查看>>
反射方法关闭窗体报错的解决方法
查看>>