商品条目一旦多了起来,就不能一页一页的翻找。需要设置条件,根据条件搜索条目。
在原来的查找所有productList的功能基础上添加条件参数,设置条件查询。
2.1 JSP页面修改
product_list.jsp
添加 searchDiv 代码,如下图所示。为搜索前端页面展示
function resetSearch(){
//重置数据
$('#searchForm').form('clear');
}
function search(){
//条件搜索
$('#dg').datagrid('load',{
pName: $('#pName').val(),
sPrice:$('#sPrice').val(),
ePrice:$('#ePrice').val()
});
}
查找所有商品数据的js中增加以下代码,传递条件参数给后台程序
2.2 Controller层代码修改
//带分页的JSP页面
@RequestMapping("/productList")
@ResponseBody
public EasyUIDateGridResult getProductList(Integer page, Integer rows, @RequestParam String pName,
@RequestParam Double sPrice, @RequestParam Double ePrice) {
EasyUIDateGridResult result = productService.getProductList(page, rows, pName, sPrice, ePrice);
return result;
}
添加了条件查询的三个参数, pName、sPrice、ePrice
2.3 Service层修改
Service接口层就不放上来了,只是更改参数
Service实现层修改如下:
/**
* 根据当前页面和行数实现分页,可带条件查询
*/
@Override
public EasyUIDateGridResult getProductList(Integer page, Integer rows, String pName, Double sPrice, Double ePrice) {
//使用pageHelper设置分页信息
if(null == page) page = 1;
if(null == rows) rows = 5;
PageHelper.startPage(page, rows);
//设置example对象条件,查询所有list
TbProductExample example = new TbProductExample();
Criteria criteria = example.createCriteria();
//设置商品名模糊查询条件
if(null != pName && !"".equals(pName)) {
criteria.andPNameLike("%" + pName + "%");
}
//设置商品价格下限查询条件
if(null != sPrice && !"".equals(sPrice)) {
criteria.andPPriceGreaterThan(sPrice);
}
//商品价格上限查询条件
if(null != ePrice && !"".equals(ePrice)) {
criteria.andPPriceLessThan(ePrice);
}
List list = mapper.selectByExample(example);
//获取分页信息
PageInfo info = new PageInfo<>(list);
//分装到EasyUIDateGridResult
EasyUIDateGridResult result = new EasyUIDateGridResult();
//设置总纪录数
result.setTotal((int)info.getTotal());
//设置list
result.setRows(info.getList());
return result;
}
主要增加了以下部分来设置条件查询:
Criteria criteria = example.createCriteria();
//设置商品名模糊查询条件
if(null != pName && !"".equals(pName)) {
criteria.andPNameLike("%" + pName + "%");
}
//设置商品价格下限查询条件
if(null != sPrice && !"".equals(sPrice)) {
criteria.andPPriceGreaterThan(sPrice);
}
//商品价格上限查询条件
if(null != ePrice && !"".equals(ePrice)) {
criteria.andPPriceLessThan(ePrice);
}
以上就完成了条件搜索功能的实现。搜索时datagrid会带参重载,即完成了搜索结果的展示。
搜索商品名含1的
新增以下商品:
其他功能后面再完善。