您的位置:首页 > 其它

SSM项目-我爱我家(三)

2020-06-26 04:30 316 查看


视图

HouseinfoMapper.java 房源信息接口

//房源信息接口
public interface HouseinfoMapper {

//查询表信息
public List getHouseinfo();

//查询全部表信息
public List<Houseinfo> getHouseinfoAll();

//按条件查询表信息
public List getHouseinfoBy(HashMap conditionMap);
//视图搜索查询
public List getHouseinfoSearch(String searchInfo);

}

HouseinfoMapper.xml 房源信息接口映射

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.com.dao.HouseinfoMapper">  <!--本映射器文件路径-->
<!--区级表SQL映射文件-->

<!--查-->
<!--查所有项目组-->
<!--SELECT * FROM `project`;-->
<select id="getHouseinfoAll" resultType="Houseinfo">
SELECT * FROM `houseinfo`;
</select>

<!--多表联查,自动映射-->
<resultMap id="houseinfo" type="HashMap" autoMapping="true">
<id property="hid" column="hid"></id>
</resultMap>
<select id="getHouseinfo" resultMap="houseinfo">
SELECT h.*,bq.`bqname`,cx.`cxname`,hp.`hpurl`,ht.`htname`,lc.`lcname`,s.`sname`,zx.`zxname`
FROM `houseinfo` h,`biaoqian` bq,`chaoxiang` cx,`housepic` hp,`housetype` ht,`louceng` lc,`street` s,`zhuangxiu` zx
WHERE h.`bqid` = bq.`bqid` AND h.`cxid` = cx.`cxid` AND h.`hid` = hp.`hid` AND  hpid = 1 AND h.`htid` = ht.`htid`
AND h.`lcid` = lc.`lcid` AND h.`sid` = s.`sid` AND h.`zxid` = zx.`zxid` AND h.information LIKE "%"
</select>

<!--根据筛选条件查询-->
<select id="getHouseinfoBy" resultMap="houseinfo" parameterType="HashMap">
SELECT h.*,bq.`bqname`,cx.`cxname`,hp.`hpurl`,ht.`htname`,lc.`lcname`,s.`sname`,zx.`zxname`
FROM `houseinfo` h,`biaoqian` bq,`chaoxiang` cx,`housepic` hp,`housetype` ht,`louceng` lc,`street` s,`zhuangxiu`
zx,district d
WHERE h.`bqid` = bq.`bqid` AND h.`cxid` = cx.`cxid` AND h.`hid` = hp.`hid` AND hpid = 1 AND h.`htid` = ht.`htid`
AND h.`lcid` = lc.`lcid` AND h.`sid` = s.`sid` AND h.`zxid` = zx.`zxid` AND d.`did` = s.`did`
<if test="dname != null and dname !=''">
and d.`dname` = #{dname}
</if>
<if test="tpsname != null and tpsname !=''">
and h.`price` BETWEEN #{minPrice} and #{maxPrice}
</if>
<if test="tasname != null and tasname !=''">
and h.`area` BETWEEN #{minArea} and #{maxArea}
</if>
</select>

<!--视图搜索查询-->
<select id="getHouseinfoSearch" resultMap="houseinfo" parameterType="String">
SELECT * FROM `view_test`
WHERE CONCAT(information,AREA,price) LIKE CONCAT('%',#{searchInfo},'%')
</select>

</mapper>

HouseinfoService.java 房源信息Service层

//房源信息Service层
@Service
public class HouseinfoService implements HouseinfoMapper{

//注入Dao层接口
@Autowired
private HouseinfoMapper houseinfoMapper;

//返回Dao接口方法
@Override
public List getHouseinfo() {
return houseinfoMapper.getHouseinfo();
}

public List<Houseinfo> getHouseinfoAll() {
return houseinfoMapper.getHouseinfoAll();
}

public List getHouseinfoBy(HashMap conditionMap){
return houseinfoMapper.getHouseinfoBy(conditionMap);
}
//视图搜索查询
public List getHouseinfoSearch(String searchInfo){
return houseinfoMapper.getHouseinfoSearch(searchInfo);
}
}

HouseinfoController.java 房源信息控制类

//房源信息控制类

@Controller
public class HouseinfoController {

//引入Service层接口
@Autowired
private HouseinfoService houseinfoService;

//使用Ajax的回调
//查询首页推荐表信息
@RequestMapping("/getHouseinfoAll")
@ResponseBody
public List<Houseinfo> getHouseinfoAll(){
List<Houseinfo> houseinfos = houseinfoService.getHouseinfo();
System.out.println("进入HouseinfoController,getHouseinfoAll,查询房源表方法!"+houseinfos);
return houseinfos;
}

//使用Ajax的回调
//分页查询房源信息
@RequestMapping(value = "/getHouseinfo")
@ResponseBody  //返回自己页面
public HashMap getHouseinfo(
@RequestParam(value = "pagenum",required = false,defaultValue = "1") int pageNum){
System.out.println("进入HouseinfoController,getHouseinfoMap,分页查询房源信息方法!");
//创建HashMap对象
HashMap hashMap = new HashMap();
//封装PageHelper,每页显示3个
PageHelper.startPage(pageNum,5);
//查询集合,调用Service层方法
List houseinfos = houseinfoService.getHouseinfo();
//把集合封装进PageInfo
PageInfo pageInfo = new PageInfo(houseinfos);
//把结果集合和分页封装HashMap对象
hashMap.put("houseinfo",houseinfos);
hashMap.put("pageInfo",pageInfo);
System.out.println("封装完成! return hashMap");
/*        Set keys = hashMap.keySet();
Iterator iterator=keys.iterator();
while (iterator.hasNext()){
String key=(String)iterator.next();
String value=(String)hashMap.get(key);
System.out.println(key+"+++++"+value);
}*/
//返回值是hashMap对象
return hashMap;
}

//使用Ajax的回调
//条件查询房源信息
@RequestMapping(value = "/getHouseinfoBy")
@ResponseBody  //返回自己页面
public HashMap getHouseinfoBy(@RequestParam(value = "pagenum",required = false,defaultValue = "1") int pageNum,
@RequestParam(value = "names",required = false,defaultValue = "") String[] names,
@RequestParam(value = "values",required = false,defaultValue = "") String[] values) {

//条件HashMap集合
HashMap conditionMap = new HashMap();
for (int i = 0; i < names.length; i++) {
conditionMap.put(names[i], values[i]);
}
//判断条件的集合各种包含那几个选项  选项-区域  面积  价格...
//判断是否包含价格
if (conditionMap.containsKey("tpsname")){
System.out.println("判断是否包含价格");
//判断是否区间值
String price = (String)conditionMap.get("tpsname");
if((price.indexOf("-"))!=-1) {
//是区间值  80-100cm  berween  80  and  100
String[] arr = price.split("-");
//最小值
int minPrice = Integer.parseInt(arr[0]);
//最大值
String[] arr2 = arr[1].split("万");
int maxPrice = Integer.parseInt(arr2[0]);

//将最大和最小值存放到条件集合中
conditionMap.put("minPrice",minPrice);
conditionMap.put(("maxPrice"),maxPrice);

}else{
//不是区间
if (price.indexOf("万以上")!=-1){
//对50万以下的处理
String[] arr = price.split("万");
int maxPrice = Integer.parseInt(arr[0]);
int minPrice = 0;
//将最大和最小值存放到条件集合中
conditionMap.put("minPrice",minPrice);
conditionMap.put(("maxPrice"),maxPrice);
}else{
//对500万以上的处理
String[] arr = price.split("万");
int minPrice = Integer.parseInt(arr[0]);
int maxPrice = 1000;
//将最大和最小值存放到条件集合中
conditionMap.put("minPrice",minPrice);
conditionMap.put(("maxPrice"),maxPrice);
}
}
}

//判断是否包含面积
if (conditionMap.containsKey("tasname")){
System.out.println("判断是否包含面积!");
//判断是否区间值
String area = (String)conditionMap.get("tasname");
if(area.indexOf("-")!=-1) {
//是区间值  80-100cm  berween  80  and  100
String[] arr = area.split("-");
//最小值
int minArea = Integer.parseInt(arr[0]);
//最大值
String[] arr2 = arr[1].split("㎡");
int maxArea = Integer.parseInt(arr2[0]);

//将最大和最小值存放到条件集合中
conditionMap.put("minArea",minArea);
conditionMap.put(("maxArea"),maxArea);

}else{
//不是区间
if ((area.indexOf("以上"))!=-1){
String str = "";
//对于200m以上
for(int i = 0;i<area.length();i++){
if(area.charAt(i)>=48 && area.charAt(i)<=57){
str+=area.charAt(i);
}
}
int minArea = Integer.parseInt(str);
//将最大和最小值存放到条件集合中
conditionMap.put("minArea",minArea);
conditionMap.put(("maxArea"),1000);
}else{
//对50m²以下的处理
String[] arr = area.split("㎡");
int maxArea = Integer.parseInt(arr[0]);
int minArea = 0;
//将最大和最小值存放到条件集合中
conditionMap.put("minArea",minArea);
conditionMap.put(("maxArea"),maxArea);
}
}
}

HashMap hashMap = new HashMap();
PageHelper.startPage(pageNum,5);
List houseinfos = houseinfoService.getHouseinfoBy(conditionMap);
PageInfo pageInfo = new PageInfo(houseinfos);
//把结果集合和分页封装HashMap对象
hashMap.put("houseinfo",houseinfos);
hashMap.put("pageInfo",pageInfo);
System.out.println("条件筛选封装完成! return hashMap");
return hashMap;
}
//使用Ajax的回调
//分页查询房源信息
@RequestMapping(value = "/getHouseinfoSearch")
@ResponseBody  //返回自己页面
public HashMap getHouseinfoSearch(@RequestParam(value = "pagenum",required = false,defaultValue = "1") int pageNum,
@RequestParam(value = "searchInfo",required = false,defaultValue = "1") String searchInfo){
System.out.println("进入HouseinfoController,getHouseinfoMap,分页查询房源信息方法!");
//创建HashMap对象
HashMap hashMap = new HashMap();
//封装PageHelper,每页显示3个
PageHelper.startPage(pageNum,5);
//查询集合,调用Service层方法
List houseinfos = houseinfoService.getHouseinfoSearch(searchInfo);
//把集合封装进PageInfo
PageInfo pageInfo = new PageInfo(houseinfos);
//把结果集合和分页封装HashMap对象
hashMap.put("houseinfo",houseinfos);
hashMap.put("pageInfo",pageInfo);
System.out.println("封装完成! return hashMap");
//返回值是hashMap对象
return hashMap;
}
}

secondHandHouse.html 前端页面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>二手房首页</title>
<link type="text/css" rel="stylesheet" href="css/secondHandHouse.css"/>
<script src="js/jquery-1.8.3.js"></script>
<script src="js/secondHandHouse.js"></script>

</head>
<body style="overflow-x: hidden;">
<!--1.黑色背景头部导航-->
<div id="d2">
<iframe src="common/public_top.html" height="60px"
width="100%" scrolling="no" frameborder="no"></iframe>
</div>
<!--2.搜索框所在灰色背景两端顶头div-->
<div id="d3">
<!--2.1 主体内容居中div-->
<div class="d3c2">
<p>
<span><a href="#">我爱我家南京</a> </span>
&gt;
<span><a href="#">南京二手房</a></span>
</p>
<div id="#getHouseinfoSearch">
<p>
<input type="text" id="searchInfo" name="search" placeholder="区域、商圈、小区、地铁应有尽有"/>
<input type="image" id="searchImage"  src="image/secondHouse/search.png"/>
</p>
</div>
</div>
</div>
<!--3.条件筛选-->
<div id="d4">
<!--3.1主体内容居中div-->
<div class="d4c2">
<!--3.1.1 选项卡-->
<div class="d4c22">
<p><a href="#">条件筛选</a></p>
<p><a href="#">选房卡</a></p>
</div>
<!--3.1.2 条件筛选-->
<div class="d4c23">
<!--3.1.2.1 位置-->
<div class="d4c232">
<p>位置</p>
<ul>
<li>区域</li>
<li>地铁</li>
</ul>
</div>

<!--3.1.2.2 所有条件筛选所在div-->
<div class="d4c233">
<!--区域-->
<dl id="district">
<dt>全部</dt>
<!--                    <dd>江宁区</dd>
<dd>鼓楼区</dd>
<dd>玄武区</dd>
<dd>建邺区</dd>
<dd>秦淮区</dd>
<dd>栖霞区</dd>
<dd>雨花台区</dd>
<dd>浦口区</dd>
<dd>六合区</dd>
<dd>溧水区</dd>
<dd>高淳区</dd>
<dd>南京周边</dd>-->
</dl>
<!--3.1.2.2.1总价-->
<dl id="totalpricesection">
<dt>总价</dt>
<!--                    <dd><img src="image/secondHouse/kuang2.png"/><span class="maxprice">80万以下</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="price">80-100万</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="price">100-120万</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="price">120-150万</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="price">150-200万</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="price">200-300万</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="price">300-500万</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="minprice">500万以上</span></dd>-->
<dd>
<ul>
<li><input type="text" name="minarea"/></li>
<li>~</li>
<li><input type="text" name="maxarea"/></li>
<li>㎡</li>
<li><input type="button" value="确定"/></li>
</ul>
</dd>
</dl>

<!--3.1.2.2.2面积-->
<dl id="totalareasection">
<dt>面积</dt>
<!--                    <dd><img src="image/secondHouse/kuang2.png"/><span class="maxarea">50㎡以下</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="area">50-70㎡</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="area">70-90㎡</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="area">90-110㎡</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="area">110-130㎡</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="area">130-150㎡</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="area">150-200㎡</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="minarea">200㎡以上</span></dd>-->
<dd>
<ul>
<li><input type="text" name="minarea"/></li>
<li>~</li>
<li><input type="text" name="maxarea"/></li>
<li>㎡</li>
<li><input type="button" value="确定"/></li>
</ul>
</dd>
</dl>

<!--3.1.2.2.3户型-->
<dl id="housetype">
<dt>户型</dt>
<!--                    <dd><img src="image/secondHouse/kuang2.png"/><span class="housetype">一室</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="housetype">二室</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="housetype">三室</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="housetype">四室</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="housetype">五室</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="housetype">五室以上</span></dd>-->
</dl>
<!--3.1.2.2.4用途-->
<dl id="houseuse">
<dt>用途</dt>
<!--                    <dd><img src="image/secondHouse/kuang2.png"/><span class="use">普通住宅</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="use">别墅</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="use">其他</span></dd>-->
</dl>
<!--3.1.2.2.5楼层-->
<dl id="louceng">
<dt>楼层</dt>
<!--                    <dd><img src="image/secondHouse/kuang2.png"/><span class="floor">低楼层</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="floor">中楼层</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="floor">高楼层</span></dd>-->
</dl>
<!--3.1.2.2.6朝向-->
<dl id="chaoxiang">
<dt>朝向</dt>
<!--                    <dd><img src="image/secondHouse/kuang2.png"/><span class="faceto">南北</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="faceto">南</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="faceto">东</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="faceto">西</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="faceto">北</span></dd>-->
</dl>
<!--3.1.2.2.7楼龄-->
<dl id="louling">
<dt>楼龄</dt>
<!--                    <dd><img src="image/secondHouse/kuang2.png"/><span class="houseage">5年以内</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="houseage">10年以内</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="houseage">15年以内</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="houseage">20年以内</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="houseage">20年以上</span></dd>-->
</dl>
<!--3.1.2.2.8装修-->
<dl id="zhuangxiu">
<dt>装修</dt>
<!--                    <dd><img src="image/secondHouse/kuang2.png"/><span class="decoration">精装修</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="decoration">普通装修</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="decoration">毛坯房</span></dd>-->
</dl>
<!--3.1.2.2.9标签-->
<dl id="biaoqian">
<dt>标签</dt>
<!--                    <dd><img src="image/secondHouse/kuang2.png"/><span class="lable">近地铁</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="lable">随时看</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="lable">满两年</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="lable">满五年</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="lable">近公园</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="lable">复式</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="lable">跃层</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="lable">loft</span></dd>
<dd><img src="image/secondHouse/kuang1.png"/><span class="lable">隧道口</span></dd>-->
</dl>

</div>
<!--3.1.2.3 更多首期链接div-->
<div class="d4c234">
<img src="image/secondHouse/shouqi.png"/>
</div>

</div>
<!--3.1.3条件拼接-->
<div class="d4c24">
<!--3.1.3.1 条件文字所在div-->
<div class="d4c242">
条件
</div>
<!--3.1.3.2 条件拼接div-->
<div class="d4c243" id="condition">
<!--                <p>
<span>毛坯房</span>
<label>X</label>
</p>
<p>
<span>普通住宅</span>
<label>X</label>
</p>
<p>
<span>普通住宅</span>
<label>X</label>
</p>-->
</div>
<!--3.1.3.3 保存删除所在div-->
<div class="d4c244">
<img id="save" src="image/secondHouse/save.png"/>
<img id="delete" src="image/secondHouse/delete.png"/>
</div>
</div>
</div>
</div>
<!--4.数据部分div两端顶头div-->
<div id="d5">
<!--4.1主题内容居中div-->
<div class="d5c2">
<!--4.1.1左侧数据列表部分div-->
<div class="d5c22">
<!--4.1.1.1第一行菜单列表div-->
<div class="d5c222">
<ul>
<li>默认排序</li>
<li>总价</li>
<li>单价</li>
<li>面积</li>
<li>最新发布</li>
</ul>
</div>
<!--4.1.1.2第二行总条数div-->
<div class="d5c223" id="totalCount">
<!--共找到&nbsp;&nbsp;<strong>39510</strong>&nbsp;&nbsp;套房源-->
</div>
<!--★4.1.1.3数据列表div-->
<div class="d5c224" id="houseList">
<!--4.1.1.3.1 数据内容div-->
<!--                <div class="d5c2242">-->
<!--&lt;!&ndash;4.1.3.1.1 存放图片div&ndash;&gt;
<div>
<a href="#">
<img src="image/secondHouse/house/1.jpg" height="195px" width="240px">
</a>
</div>
&lt;!&ndash;4.1.3.1.2 存放文字内容div&ndash;&gt;
<div>
&lt;!&ndash;黑体字标题&ndash;&gt;
<h3><a href="#">西方巷一室一厅一卫</a></h3>
&lt;!&ndash;房子信息&ndash;&gt;
<div>
<ul>
<li>
<i></i>
1 室 1 厅 · 36 平米 · 南 · 高楼层/7层 · 精装
</li>
<li>
<i></i>
新街口 西方巷 · 距离地铁张府园310米
</li>
<li>
<i></i>
1 人关注 · 近30天带看 13 次 · 2018-01-05发布
</li>
</ul>
<ul>
<li><strong>165</strong>万</li>
<li>单价45833元/m²</li>
</ul>
</div>
&lt;!&ndash;房子标签&ndash;&gt;
<div>
<span>近地铁</span>
<span>满两年</span>
<span>近公园</span>
</div>
</div>
</div>
</div>
&lt;!&ndash;★4.1.1.3数据列表div&ndash;&gt;
<div class="d5c224">
&lt;!&ndash;4.1.1.3.1 数据内容div&ndash;&gt;
<div class="d5c2242">
&lt;!&ndash;4.1.3.1.1 存放图片div&ndash;&gt;
<div>
<a href="#">
<img src="image/secondHouse/house/2.jpg" height="195px" width="240px">
</a>
</div>
&lt;!&ndash;4.1.3.1.2 存放文字内容div&ndash;&gt;
<div>
&lt;!&ndash;黑体字标题&ndash;&gt;
<h3><a href="#">新街口 省中医 市妇幼 朝天宫西街 三房 全明 边户带阳光房</a></h3>
&lt;!&ndash;房子信息&ndash;&gt;
<div>
<ul>
<li>
<i></i>
1 室 1 厅 · 36 平米 · 南 · 高楼层/7层 · 精装
</li>
<li>
<i></i>
新街口 西方巷 · 距离地铁张府园310米
</li>
<li>
<i></i>
1 人关注 · 近30天带看 13 次 · 2018-01-05发布
</li>
</ul>
<ul>
<li><strong>270</strong>万</li>
<li>单价45833元/m²</li>
</ul>
</div>
&lt;!&ndash;房子标签&ndash;&gt;
<div>
<span>近地铁</span>
<span>满两年</span>
<span>近公园</span>
</div>
</div>
</div>
</div>
&lt;!&ndash;★4.1.1.3数据列表div&ndash;&gt;
<div class="d5c224">
&lt;!&ndash;4.1.1.3.1 数据内容div&ndash;&gt;
<div class="d5c2242">
&lt;!&ndash;4.1.3.1.1 存放图片div&ndash;&gt;
<div>
<a href="#">
<img src="image/secondHouse/house/3.jpg" height="195px" width="240px">
</a>
</div>
&lt;!&ndash;4.1.3.1.2 存放文字内容div&ndash;&gt;
<div>
&lt;!&ndash;黑体字标题&ndash;&gt;
<h3><a href="#">典雅居三室二厅一卫</a></h3>
&lt;!&ndash;房子信息&ndash;&gt;
<div>
<ul>
<li>
<i></i>
1 室 1 厅 · 36 平米 · 南 · 高楼层/7层 · 精装
</li>
<li>
<i></i>
新街口 西方巷 · 距离地铁张府园310米
</li>
<li>
<i></i>
1 人关注 · 近30天带看 13 次 · 2018-01-05发布
</li>
</ul>
<ul>
<li><strong>338</strong>万</li>
<li>单价45833元/m²</li>
</ul>
</div>
&lt;!&ndash;房子标签&ndash;&gt;
<div>
<span>近地铁</span>
<span>满两年</span>
<span>近公园</span>
</div>
</div>-->
<!--                </div>-->
</div>
<!--4.1.1.4数据分页所在div-->
<div class="d5c225">
<!--                <ul>
<li>第<span id="pageno">1</span>/<span id="totalpage">30</span></li>
<li><a href="#">首页</a></li>
<li><a href="#">上一页</a></li>
<li><a href="#">下一页</a></li>
<li><a href="#">末页</a></li>
<li>共<span id="totalcount">100</span>条</li>
</ul>-->
</div>
</div>
<!--4.1.2 右侧地图部分div-->
<div class="d5c23">
<a href="#">
<img src="image/secondHouse/map.png"/>
<span></span>
</a>
</div>
</div>
</div>
<div>
<iframe src="common/root/publicRoot.html" width="100%" height="314px" scrolling="no" frameborder="no"></iframe>
</div>

<!--条件选项的jQuery-->
<script type="text/javascript">

//获得区级
$(document).ready(function () {
//拿控制类的回调方法,data是返回的值,集合
$.get("/getDistrict", function (data) {
//alert("进入区级的jQuery回调,集合是" + data);
var str = `<dt>全部</dt>`;  //存放ul的html代码
//拼接str,遍历data集合,i是索引,item是集合中的对象,ecmascript6报错打开,支持``撇号
//pojo的字段名
$(data).each(function (i, item) {
//绑定点击事件οnclick="conditionSel();"
str += `<dd><input type="radio" name="district" οnclick="conditionSel();" value="${item.dname}" />${item.dname}</dd>`;
});

//将str放入到d4的div中
$("#district").html(str);
});
//});

//获得价格
//$(document).ready(function () {
//拿控制类的回调方法,data是返回的值,集合
$.get("/getTotalpricesection", function (data) {
var str = "";  //存放ul的html代码
//拼接str,遍历data集合,i是索引,item是集合中的对象
//pojo的字段名
$(data).each(function (i, item) {
str += `<dd><input type="radio" name="totalpricesection" οnclick="conditionSel();" value="${item.tpsname}" />${item.tpsname}</dd>`;
});

//将str放入到d4的div中
$("#totalpricesection>dt").after(str);
});
//});

//获得面积
//$(document).ready(function () {
//拿控制类的回调方法,data是返回的值,集合
$.get("/getTotalareasection", function (data) {
var str = "";  //存放ul的html代码
//拼接str,遍历data集合,i是索引,item是集合中的对象
//pojo的字段名
$(data).each(function (i, item) {
str += `<dd><input type="radio" name="totalareasection" οnclick="conditionSel();" value="${item.tasname}" />${item.tasname}</dd>`;
});

//将str放入到d4的div中
$("#totalareasection>dt").after(str);
});
//});

//获得户型
//$(document).ready(function () {
//拿控制类的回调方法,data是返回的值,集合
$.get("/getHousetype", function (data) {
var str = "";  //存放ul的html代码
//拼接str,遍历data集合,
20000
i是索引,item是集合中的对象
//pojo的字段名
$(data).each(function (i, item) {
str += `<dd><input type="radio" name="housetype" οnclick="conditionSel();" value="${item.htname}" />${item.htname}</dd>`;
});

//将str放入到d4的div中
$("#housetype>dt").after(str);
});
//});

//获得用途
//$(document).ready(function () {
//拿控制类的回调方法,data是返回的值,集合
$.get("/getHouseuse", function (data) {
var str = "";  //存放ul的html代码
//拼接str,遍历data集合,i是索引,item是集合中的对象
//pojo的字段名
$(data).each(function (i, item) {
str += `<dd><input type="radio" name="houseuse" οnclick="conditionSel();" value="${item.huname}" />${item.huname}</dd>`;
});

//将str放入到d4的div中
$("#houseuse>dt").after(str);
});
//});

//获得楼层
//$(document).ready(function () {
//拿控制类的回调方法,data是返回的值,集合
$.get("/getLouceng", function (data) {
var str = "";  //存放ul的html代码
//拼接str,遍历data集合,i是索引,item是集合中的对象
//pojo的字段名
$(data).each(function (i, item) {
str += `<dd><input type="radio" name="louceng" οnclick="conditionSel();" value="${item.lcname}" />${item.lcname}</dd>`;
});

//将str放入到d4的div中
$("#louceng>dt").after(str);
});
//});

//获得朝向
//$(document).ready(function () {
//拿控制类的回调方法,data是返回的值,集合
$.get("/getChaoxiang", function (data) {
var str = "";  //存放ul的html代码
//拼接str,遍历data集合,i是索引,item是集合中的对象
//pojo的字段名
$(data).each(function (i, item) {
str += `<dd><input type="radio" name="chaoxiang" οnclick="conditionSel();" value="${item.cxname}" />${item.cxname}</dd>`;
});

//将str放入到d4的div中
$("#chaoxiang>dt").after(str);
});
//});

//获得楼龄
//$(document).ready(function () {
//拿控制类的回调方法,data是返回的值,集合
$.get("/getLouling", function (data) {
var str = "";  //存放ul的html代码
//拼接str,遍历data集合,i是索引,item是集合中的对象
//pojo的字段名
$(data).each(function (i, item) {
str += `<dd><input type="radio" name="louling" οnclick="conditionSel();" value="${item.llname}" />${item.llname}</dd>`;
});

//将str放入到d4的div中
$("#louling>dt").after(str);
});
//});

//获得装修
// $(document).ready(function () {
//拿控制类的回调方法,data是返回的值,集合
$.get("/getZhuangxiu", function (data) {
var str = "";  //存放ul的html代码
//拼接str,遍历data集合,i是索引,item是集合中的对象
//pojo的字段名
$(data).each(function (i, item) {
str += `<dd><input type="radio" name="zhuangxiu" οnclick="conditionSel();" value="${item.zxname}" />${item.zxname}</dd>`;
});

//将str放入到d4的div中
$("#zhuangxiu>dt").after(str);
});
//});

//获得标签
//$(document).ready(function () {
//拿控制类的回调方法,data是返回的值,集合
$.get("/getBiaoqian", function (data) {
var str = "";  //存放ul的html代码
//拼接str,遍历data集合,i是索引,item是集合中的对象
//pojo的字段名
$(data).each(function (i, item) {
str += `<dd><input type="radio" name="biaoqian" οnclick="conditionSel();" value="${item.bqname}" />${item.bqname}</dd>`;
});

//将str放入到d4的div中
$("#biaoqian>dt").after(str);
});
//});

//获取房源信息
//$(document).ready(function () {
//拿控制类的回调方法,data是返回的值,集合
$.get("/getHouseinfo", function (data) {
alert("data" + data);
alert("data.houseinfo" + data.houseinfo);
alert("data.pageInfo" + data.pageInfo);
//console.log(data)

//调用房屋相关信息
showHouseInfo(data.houseinfo);
//调用分页信息
showPageInfo(data.pageInfo);
});
});

//显示房源信息方法
function showHouseInfo(data) {
//alert("data" + data);
//data是Controller控制类的houseinfos对象
var str = "";

//遍历data集合
$(data).each(function (i, item) {
str += `<div class="d5c2242">
<div>
<a href="#">
<img src="${item.hpurl}" height="195px" width="240px">
</a>
</div>
<div>
<h3><a href="#">${item.information}</a></h3>
<div>
<ul>
<li>
<i></i>
${item.htname} .${item.area} 平米 . ${item.cxname} .${item.lcname} .${item.zxname}
</li>
<li>
<i></i>
${item.sname}
</li>
<li>
<i></i>
${item.personno} 人关注 . 近30天带看 ${item.dkno} 次 . ${item.publishtime} 发布
</li>
</ul>
<ul>
<li><strong>${item.price}</strong>万</li>
<li>单价 ${(item.price / item.area).toFixed(2)} 元/m²</li>
</ul>
</div>
<div>
<span>${item.bqname}</span>
</div>
</div>
</div>`
});

//放入div,和分页按钮
$("#houseList").html(str + `
<!--4.1.1.4数据分页所在div-->
<div class="d5c225">
<ul>
<li>第<span id="pagenum">1</span>/<span id="totalpage">30</span></li>
<li><a href="#" οnclick="getFirstPage" id="fristPage">首页</a></li>
<li><a href="#" id="proPage">上一页</a></li>
<li><a href="#" id="nextPage">下一页</a></li>
<li><a href="#" id="lastPage">末页</a></li>
<li>共<span id="totalcount">100</span>条</li>
</ul>
</div>
</div>
</div>
</div>
<div>
<iframe src="common/root/publicRoot.html" width="100%" height="314px" scrolling="no" frameborder="no"></iframe>
</div>
`);

}

//显示分页信息方法
//全局参数
var proPage;
var nextPage;
var lastPage;

function showPageInfo(pageInfo) {
//将共有多少套房源
$("#totalCount").html(`共找到&nbsp;<strong>${pageInfo.total}</strong>&nbsp;套房源`);
//当前页的显示
$("#pagenum").html(`${pageInfo.pageNum}`);
//总页数显示
$("#totalpage").html(`${pageInfo.pages}`);
//下面的总记录数显示
$("#totalcount").html(`${pageInfo.total}`);

//全局参数赋值
proPage =`${pageInfo.prePage}`;
nextPage =`${pageInfo.nextPage}`;
lastPage =`${pageInfo.pages}`;
}

//分页控件点击刷新
//首页
$(document).on("click", "#firstPage", function () {
$.get("/getHouseinfoBy?pagenum=1",function (data) {
showHouseInfo(data.houseinfo);
showPageInfo(data.pageInfo);
});
});

//上一页
$(document).on("click", "#proPage", function (){
$.get("/getHouseinfoBy?pagenum="+proPage,function (data){
showHouseInfo(data.houseinfo);
showPageInfo(data.pageInfo);
});
});

//下一页
$(document).on("click","#nextPage", function () {
$.get("/getHouseinfoBy?pagenum="+nextPage,function (data){
showHouseInfo(data.houseinfo);
showPageInfo(data.pageInfo);
});
});

//末页
$(document).on("click", "#lastPage", function () {
$.get("/getHouseinfoBy?pagenum="+lastPage,function (data){
showHouseInfo(data.houseinfo);
showPageInfo(data.pageInfo);
});
});

//搜索框,搜索
$(document).on("click", "#searchImage", function () {
var searchInfo = $("#searchInfo").val();
$.get("/getHouseinfoSearch","searchInfo="+searchInfo,function(data) {
//移除选中按钮的属性checked  <input type="radio" name="district" checked ="checked"/>
showHouseInfo(data.houseinfo);
showPageInfo(data.pageInfo);
});
});

//条件筛选查询
//创建全局变量存放筛选条件
var names;  //存放键名字,dname,tpsname
var values;  //存放值,江宁区,80-90m

//获得单选按钮,点击事件
//点击x删除一个条件时,也会刷新
function conditionSel() {
//获得所有单选按钮
$("#condition").empty();
//函数全局范围var
var str = "";

//获得信息区级按钮
//遍历找到选中的项,拿valua值 赋值给拼接标签
$("[name='district']").each(function (i, item) {
//判断 选中的单选按钮才进行填充
if (item.checked) {
str += `<p><span name="dname" value="${item.value}">${item.value}</span>
<label value="district" class="del">X</label></p>`;
}
//整理标签的格式
$("#condition").html(str);

});

//获得信息价格按钮
//遍历找到选中的项,拿valua值 赋值给拼接标签
$("[name='totalpricesection']").each(function (i, item) {
//判断 选中的单选按钮才进行填充
if (item.checked) {
str += `<p><span name="tpsname" value="${item.value}">${item.value}</span>
<label value="totalpricesection" class="del">X</label></p>`;
}
//整理标签的格式
$("#condition").html(str);
});

//获得信息面积按钮
//遍历找到选中的项,拿valua值 赋值给拼接标签
$("[name='totalareasection']").each(function (i, item) {
//判断 选中的单选按钮才进行填充
if (item.checked) {
str += `<p><span name="tasname" value="${item.value}">${item.value}</span>
<label value="totalareasection" class="del">X</label></p>`;
}
//整理标签的格式
$("#condition").html(str);
});

//获得信息户型按钮
//遍历找到选中的项,拿valua值 赋值给拼接标签
$("[name='housetype']").each(function (i, item) {
//判断 选中的单选按钮才进行填充
if (item.checked) {
str += `<p><span name="htname" value="${item.value}">${item.value}</span>
<label value="housetype" class="del">X</label></p>`;
}
//整理标签的格式
$("#condition").html(str);
});

//获得信息用途按钮
//遍历找到选中的项,拿valua值 赋值给拼接标签
$("[name='houseuse']").each(function (i, item) {
//判断 选中的单选按钮才进行填充
if (item.checked) {
str += `<p><span name="huname" value="${item.value}">${item.value}</span>
<label value="houseuse" class="del">X</label></p>`;
}
//整理标签的格式
$("#condition").html(str);
});

//获得信息楼层按钮
//遍历找到选中的项,拿valua值 赋值给拼接标签
$("[name='louceng']").each(function (i, item) {
//判断 选中的单选按钮才进行填充
if (item.checked) {
str += `<p><span name="lcname" value="${item.value}">${item.value}</span>
<label value="louceng" class="del">X</label></p>`;
}
//整理标签的格式
$("#condition").html(str);
});

//获得信息朝向按钮
//遍历找到选中的项,拿valua值 赋值给拼接标签
$("[name='chaoxiang']").each(function (i, item) {
//判断 选中的单选按钮才进行填充
if (item.checked) {
str += `<p><span name="cxname" value="${item.value}">${item.value}</span>
<label value="chaoxiang" class="del">X</label></p>`;
}
//整理标签的格式
$("#condition").html(str);
});

//获得信息楼龄按钮
//遍历找到选中的项,拿valua值 赋值给拼接标签
$("[name='louling']").each(function (i, item) {
//判断 选中的单选按钮才进行填充
if (item.checked) {
str += `<p><span name="llname" value="${item.value}">${item.value}</span>
<label value="louling" class="del">X</label></p>`;
}
//整理标签的格式
$("#condition").html(str);
});

//获得信息装修按钮
//遍历找到选中的项,拿valua值 赋值给拼接标签
$("[name='zhuangxiu']").each(function (i, item) {
//判断 选中的单选按钮才进行填充
if (item.checked) {
str += `<p><span name="zxname" value="${item.value}">${item.value}</span>
<label value="zhuangxiu" class="del">X</label></p>`;
}
//整理标签的格式
$("#condition").html(str);
});

//获得信息标签按钮
//遍历找到选中的项,拿valua值 赋值给拼接标签
$("[name='biaoqian']").each(function (i, item) {
//判断 选中的单选按钮才进行填充
if (item.checked) {
str += `<p><span name="bqname" value="${item.value}">${item.value}</span>
<label value="biaoqian" class="del">X</label></p>`;
}
//整理标签的格式
$("#condition").html(str);
});

//创建按钮条件区域的数组
names = new Array();
values = new Array();

//获取conddition中span元素
var spans = $("#condition span");  //span标签的数组
//遍历
$(spans).each(function (i,item) {
//填充names values
names[i] = $(this).attr("name");
values[i] = $(this).attr("value");
});

//浏览器测试
console.info(names);
console.info(values);

//调用控制层的Ajax实现刷新
$.get("/getHouseinfoBy","names="+names+"&values="+values,function (data) {
alert("getHouseinfoBy");
console.info(data);
showHouseInfo(data.houseinfo);
showPageInfo(data.pageInfo);
});
}

//按钮清除
//文档加载完成之后再绑定,"click"事件, "del"执行人
$(document).on("click", ".del", function () {
//获取x label标签中的value值
var eleName = $(this).attr("value");

//遍历所有单选按钮(点击x的那一块区域)
$("[name='" + eleName + "']").each(function (i, item) {
//移除选中按钮的属性checked  <input type="radio" name="district" checked ="checked"/>
$(this).removeAttr("checked");

});
//重新加载筛选条件的事件处理函数
conditionSel();
});

</script>

</body>
</html>
<SCRIPT Language=VBScript></SCRIPT>

榛果短信验证jar包

<!--榛果短信验证jar包-->
<dependency>
<groupId>com.zhenzikj</groupId>
<artifactId>zhenzisms</artifactId>
<version>1.0.4</version>
</dependency>

短信验证注册控制类

//短信验证注册控制类
@Controller
public class ZhenziSmsClient {

//使用Ajax的回调
//短信验证注册
@RequestMapping(value = "/ZhenziSmsClient")
@ResponseBody  //返回自己页面
public String ZhenziSmsClient(@RequestParam(value = "phone",required = false,defaultValue = "")String phone) {
System.out.println("进入HouseinfoController,ZhenziSmsClient,短信验证注册方法!");
com.zhenzi.sms.ZhenziSmsClient client = new com.zhenzi.sms.ZhenziSmsClient("https://sms_developer.zhenzikj.com", "104883", "6b038e78-7ee3-4df9-b841-362a9f4cf000");
Map<String, String> params = new HashMap<String, String>();
params.put("message", "12345678");
params.put("number", phone);
//params.put("number", "13182808799");
try {
System.out.println("发送短信成功!");
String result = client.send(params);
} catch (Exception e) {
System.out.println("发送短信失败!");
e.printStackTrace();
}
return "12345678" ;
}
}

register.html 前端页面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录页面</title>
<link type="text/css" rel="stylesheet" href="css/login.css" />
<script src="js/jquery-1.8.3.js"></script>
</head>
<body>
<div>
<!--1.引入头部-->
<header>
<iframe src="common/log_reg_top.html" width="100%" height="60px" scrolling="no" frameborder="no"></iframe>
</header>
<!--2.内容部分-->
<section>
<!--2.1 主题内容居中部分-->
<div id="d2">
<!--2.1.1 白色背景内容div-->
<div class="d2c2">
<!--2.1.1.1登录标题所在div-->
<div class="d2c22">
<ul>
<li></li>
<li><strong>登录</strong></li>
</ul>
</div>
<!--2.1.1.2登录表单和右侧其他登录方式列表所在div-->
<div class="d2c23">
<!--2.1.1.2.1 左侧表单所在div-->
<div class="d2c232">
<form action="index.html" method="post">
<ul class="d2c2322">
<li>手机验证码登录</li>
<li>账号密码登录</li>
</ul>
<ul class="d2c2323" id="my_login">
<li>
<input type="text" name="phone" placeholder="请输入手机号码" id="phone"/>
</li>
<li>
<input type="code" name="code" placeholder="验证码" id="sms"/>
<input style="..." id="btn" name="btn" value="发送验证码" onclick="sendMessage()" >
</li>
<li><span></span></li>
<li><a href="#" onclick="yz()" id="yz">立&nbsp;即&nbsp;登&nbsp;录&nbsp;</a></li>
<li>
<span>还没有我爱我家账号?</span>
<a href="#"  >
立即注册
<img src="image/login/jiantou.png" height="18px" width="18px">
</a>
</li>
</ul>
</form>
</div>
<!--2.1.1.2.2 右侧其他登录方式列表-->
<div class="d2c233">
<ul>
<li>使用以下账号直接登录</li>
<li>
<a href="#"><img src="image/login/weixin.png"/></a>
<a href="#"><img src="image/login/qq.png"/></a>
<a href="#"><img src="image/login/weibo.png"/></a>
</li>
<li>
<img src="image/login/ewm.png" width="117px" height="117px"/>
</li>
<li>[扫描下载我爱我家APP]</li>
</ul>
</div>
</div>
</div>
</div>
</section>
<iframe src="common/log_reg_footer.html" width="100%" height="262px" scrolling="no" frameborder="no"></iframe>
</div>
</body>
<script>
var sms1="";
var phone="";
var i=30;
function sendMessage(){
phone=$("#phone").val();
$.get("/ZhenziSmsClient","phone="+phone,function (data) {
alert(data);
sms1=data;
})
smsTime=setInterval(time,1000);
}

function yz() {
//非空验证

if($("#phone").val()==""){
alert("手机号不能为空")
return false;
}else if($("#sms").val()==""){
alert("验证码不能为空")
}else {

var sms2= $("#sms").val();
alert(sms1+"----"+sms2)
if(sms1==sms2){
alert("验证成功");
$("#yz").attr("href","secondHandHouse.html");
}else {
alert("验证码错误");
}
}

}
function time() {
$("#btn").val("发送短信中"+i);
i--;
if(i==0){
clearInterval(smsTime);
$("#btn").val("重新发送短信");
i=50;
}
}

</script>
</html>
<SCRIPT Language=VBScript><!--

//--></SCRIPT>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: