一、搜索框完成站内搜索
实现功能及思路:在首页文本框中输入任意字,点击搜索按钮将实现站内查询,将含有输入内容的商品显示在首页下方。
思路:
1.在项目首页中添加一个文本框和按钮
userBar
搜索
2.在GoodsController中定义一个方法将存放在bean中的值取到result中传给list输出到首页。
在这里进行了购物车的实例化
GoodsController
@RequestMapping(value = "/serch", method = RequestMethod.POST)
public String delete(GoodsForm goodsForm, Model model) {
List rescult = goodsService.serchGoodsList(goodsForm);
model.addAttribute("list", rescult);
CartForm cartForm = new CartForm();
model.addAttribute("cartList", cartService.searchCartList(cartForm));
return "shop/index";
}
3.定义一个list的方法存放搜索出来的结果列表
GoodsService
public List serchGoodsList(GoodsForm frm) {
List result = queryDao.executeForObjectList("Goods.selectList", frm);
return result;
}
4.要完成站内的搜索,就必须在数据库中筛选出含有输入内容的数据。则此时就必须注意,一个完整的项目都是各个表之间的相互调用,此时查询关联表的情况下,表名为多个。而模糊查询输入的内容对应的SQL文为:
where name like %XX%
而今天项目中的是 where 表名.name like '%$ XXXXXX $%' 而且where中多个条件并存时用AND或者OR连接
GoodsSqlMap
parameterClass="cn.agriculture.web.form.GoodsForm"
resultClass="cn.agriculture.web.form.GoodsForm">
SELECT commodity.commodity_id as commodityId,
commodity.type as type,
supplier.supplier_name as supplierName,
brand.brand_name as brandName,
commodity.commodity_name as commodityName,
commodity.weight as weight,
commodity.is_gift as isGift,
commodity.specifications as specifications,
commodity.unit as unit,
commodity.benchmark_price as benchmarkPrice,
commodity.guide_price as guidePrice,
commodity.retail_price as retailPrice,
commodity.competition_level as competitionLevel,
commodity.note as note,
commodity.update_time as updateTime,
commodity.update_user as updateUser,
commodity.picture_id as pictureId,
stock.stock as stock
FROM commodity, supplier, brand, stock
WHERE commodity.commodity_id = stock.commodity_id
AND commodity.supplier_id = supplier.supplier_id
AND commodity.brand_id = brand.brand_id
AND commodity.commodity_name like '%$commodityName$%'
二、改JSP为HTML页面
思路:将JSP页面改为HTML是方便前台后期的修改,需要将JSP页面中的所有标签换成HTML中的表达方式
form表单中需要添加一项 th:value="${userBean} " 表示引用的是UserBean 中的数据
文本输出要用 th:text="${MESSAGE}"