多条件查询与分页:
通过页面的houseName、floorage获取值传到前端视图(HouseSearchVO)实体类中的houseName,floorage建立houseSearchVO对象。
通过controller控制层getHouseSearch方法得到houseName,floorage的值 存在哪个就将此值传到后端(HouseSearch)实体类中建立houseSearch对象。
list.jsp: HouseSearchVO:
HouseController:
此时返回一个houseSearch对象。通过HouseService中的search方法调用HouseDAO中的查询,此时传到HouseDAO.xml调用sql语句
HouseService: HouseDAO:
HouseDAO.xml:
分页插件:
页面显示:
升级版:
将页面查询时添加的条件 用HouseSearchVO对象保存,再将此对象保存到@ModelAttribute(“vo”)vo对象中返回给页面。
此时,页面就能拿到vo对象,然后通过vo对象的属性来将条件重新显示
最后将下一页修改成点击事件,将页码和表单一起提交。
HouseController
jsp:
源码:
mybatis-config.xml
1 <!--插件 分页--> 2 <plugins> 3 <plugin interceptor="com.github.pagehelper.PageHelper"> 4 <property name="dialect" value="mysql"></property> 5 </plugin> 6 </plugins>
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > 3 <mapper namespace="com.etc.dao.HouseDAO"> 4 <insert id="add"> 5 INSERT INTO `t_house` ( 6 `h_name`, 7 `h_rect`, 8 `h_date`, 9 `h_loc1`, 10 `h_loc2`, 11 `h_img`, 12 `h_userId` 13 ) 14 VALUES 15 ( 16 #{hName}, 17 #{hRect}, 18 #{hDate}, 19 #{hLoc1}, 20 #{hLoc2}, 21 #{hImg}, 22 #{userId} 23 ); 24 </insert> 25 26 <select id="serach" resultType="house"> 27 SELECT * from `t_house` 28 <where> 29 <if test="houseName!=null"> 30 h_name like '%${houseName}%' 31 </if> 32 <if test="minRect!=null and maxRect!=null"> 33 and h_rect between #{minRect} and #{maxRect} 34 </if> 35 </where> 36 37 </select> 38 39 </mapper>