把线路搜索和线路详情功能用自己的话描述出来.
线路搜索功能:
前端页面:
header.html:给搜索按钮绑定一个单击事件,获取到搜索线路的名称rname和对应的cid,点击后跳转到指定的route_list页面
route_list.html :获取到对应的rname和cid,因为rname是中文字符串,所以我们要对rname进行解码处理,防止出现乱码的问题.然后将rname参数添加到load方法里.在ajax请求里添加rname参数,然后在前端的相关位置分别对rname有关功能进行添加.
web层:
1.在RouteServlet中获取前端传递的rname的参数,并对前端传递的rname参数进行相对应的解码操作,tomcat8之后不需要解决中文乱码问题,tomcat8之前就需要解决中文乱码问题,解决方法有两种:1/直接使用post方式的ajax请求,然后在servlet里直接设置编码request.setCharacterEncoding("utf-8")解决;2/在pom.xml文件中的tomcat7jar包下添加URIEncoding utf-8 即可.
2.接下来把rname添加到调用service层中的方法的参数里.重构下方法
3.设置json数据格式,将返回的方法对象响应到客户端.
service层:
重构有rname参数的方法,传递rname参数到dao层的方法中,传递到dao层进行查询
dao层:
从service层重构多一个rname参数的方法后,要对sql语句进行拼接处理,利用模糊查询查出想要的任意关键字的内容.所以在sql查询我们需要做下面这些sql字符串拼接的步骤:
1/先创建一个sql模板,select * from tab_route where 1 = 1; 利用恒等式进行字符串拼接
2/创建一个字符串缓冲区对象StringBuilder
3/再创建一个params集合,专门放置各个参数条件
4/对cid和rname进行判断 如果满足条件就进行字符串拼接,先拼接 StringBuilder 然后再将条件添加到params集合中.
5/最后对拼接好的sql进行查询.然后返回查询结果.
线路详情功能:
当点击查看详情时跳转到route_detail.html页面,携带route线路的rid进行查询.我们点开查看详情的页面分析得出要有三张表之间的对应关系,分别是一对多的关系(route->route_img)一的一方建立多的一方的集合和多对一的关系(route->seller)多的一方建立一的一方的对象,所以我们在route对象中创建一个ImgList集合对象和一个Seller对象.
web层:(serlvet)
1/获取到前端传递的rid
2/调用service层的findOne方法,传入参数rid,返回一个Route对象
3/设置json数据格式,将route对象响应到客户端展示
dao层:
我们知道了需要查询的有ImgList集合对象和Seller对象
所以在dao层需要创建两个查询方法,一个ImgList<RouteImg> 对象方法 和一个Seller 对象方法.
然后sql查询完.两个方法分别返回一个List集合对象,一个Seller对象到service层
service层:
1/根据id创建获取Route对象
2/创建一个ImgList<RouteImg> 对象方法,将返回的list集合对象set存入Route对象中
3/创建一个Seller 对象方法,将返回的Seller对象set存入Route对象中
4/将Route对象返回到Servlet层.
|