com.xaccp.HouseTent.Servlet.do_index_select
1.动态从数据库加载各个条件的下拉列表数据//动态加载街道下拉列表
//动态加载街道下拉列表
List
streets = streetBizImpl.getAllStreet();
Iterator
iterStreets = streets.iterator();
//动态加载户型下拉列表
List
houseTypes = houseTypeBizImpl.getAllHouseType();
Iterator
iterHouseTypes = houseTypes.iterator();
2.通过request.getParameter("XXX")获得用户需要查询的各个条件
//标题
if(request.getParameter("title")!=null){
title=request.getParameter("title");
}
//价钱
if(request.getParameter("price")!=null){
if(request.getParameter("price")!="不限"){
if(request.getParameter("price").equals("1")){
minPrice=1;
maxPrice=999;
}else
if(request.getParameter("price").equals("2")){
minPrice=1000;
maxPrice=2000;
}else
if(request.getParameter("price").equals("3")){
minPrice=2001;
maxPrice=1000000;
}
}
}
//位置
if(request.getParameter("street_id")!=null){
if(request.getParameter("street_id")!="不限"){
street_id=Integer.parseInt(request.getParameter("street_id"));
}
}
//房型
if(request.getParameter("type_id")!=null){
if(request.getParameter("type_id")!="不限"){
houseType_id=Integer.parseInt(request.getParameter("type_id"));
}
}
//面积
if(request.getParameter("floorage")!=null){
if(request.getParameter("floorage")!="不限"){
if(request.getParameter("floorage").equals("1")){
minArea=1;
maxArea=49;
}else
if(request.getParameter("floorage").equals("2")){
minArea=50;
maxArea=100;
}else if(request.getParameter("floorage").equals("3")){
minArea=101;
maxArea=1000000;
}
}
}
3.创建HQL查询语言的参数对象
IndexSelectCondition
indexSelectCondition =
new IndexSelectCondition(
title, street_id, houseType_id, minPrice, maxPrice,
minArea,maxArea);
4.编写分页显示的各个变量
//分页显示 int
pageIndex=1;
int pageSize=5;
long count =
houseBizImpl.getAllHouseCountByPage(indexSelectCondition);
// 注1
long pageCount = count%pageSize==0 ?
count/pageSize : count/pageSize+1;
//捕捉pageIndex(首页,上一页,下一页,最后一页) if(request.getParameter("pageIndex")!=null){
pageIndex=Integer.parseInt(request.getParameter("pageIndex"));
}
//捕捉pageIndex(Go按钮跳转页数) if(request.getParameter("index")!=null){
pageIndex=Integer.parseInt(request.getParameter("index"));
}
5.判断index.jsp页面是查询全部还是按条件查询部分结果
List
houses=null;
if(indexSelectCondition.getTitle()==null&&
indexSelectCondition.getMinPrice()==0&&
indexSelectCondition.getMaxPrice()==0&&
indexSelectCondition.getStreet_id()==0&&
indexSelectCondition.getHouseType_id()==0&&
indexSelectCondition.getMinArea()==0&&
indexSelectCondition.getMaxArea()==0
){
//分页查询所有房屋信息 houses
= houseBizImpl.getAllHouseByPage(pageIndex,pageSize);//注2 }else{
//分页查询用户选中条件下部分房屋信息
houses
=
houseBizImpl.getAllHouseByPage(pageIndex,pageSize,indexSelectCondition);//注3
}
6.request传递的各个对象
//街道列表 request.setAttribute("iterStreets",iterStreets);
//户型列表 request.setAttribute("iterHouseTypes",iterHouseTypes);
//查询到的房屋信息数量的总页数 request.setAttribute("pageCount",
pageCount);
//当前页数 request.setAttribute("pageIndex",
pageIndex);
//查询到的房屋信息 request.setAttribute("houses",houses);
7.转发到index.jsp页面(显示页面)
RequestDispatcher rd =
request.getRequestDispatcher("../index.jsp");
rd.forward(request,
response);
=============================================================================================
index.jsp
action="do_index_select"
method=post>
- 房屋信息
- 标题:
class=text name=title>
name=search>
- 价格
name=price>
selected>不限
value=1>1000元以下
1000元-2000元
value=3>2000元以上
- 房屋位置
name=street_id>
不限
varStatus="status">
value=${street.id}>${street.name}
- 房型
name=type_id>
selected>不限
varStatus="status">
value=${houseType.id}>${houseType.name}
- 面积
name=floorage>
selected>不限
50
㎡以下
50 ㎡— 100
㎡
100
㎡以上