Diary(五)——日志主页功能完善(下)

目录

 

1. 根据日志标题模糊查询日志;

1.1 mainTemp.jsp,看一下前台所传的数据;

1.2 dao层,DiaryDao类写查询方法;

1.3 web层,MainServlet写后台处理前台的数据;


1. 根据日志标题模糊查询日志;

1.1 mainTemp.jsp,看一下前台所传的数据;

主要看一下这里的action和id,其中:

action是前台页面的“搜索日志”按钮所传给后台的id;

id="s_title"是我们在搜索框里面输入的标题传给后台的id;

 <!-- 搜索表单 -->
          <!-- 导航栏内的表单,用navbar-form进行样式化,pull-right是设置居右显示 -->
          <form name="myForm" class="navbar-form pull-right" method="post" action="main?all=true">
	  		<input class="span2" id="s_title" name="s_title"  type="text" style="margin-top:5px;height:30px;" placeholder="往事如烟...">
	  		<button type="submit" class="btn" onkeydown="if(event.keyCode==13) myForm.submit()"><i class="icon-search"></i>&nbsp;搜索日志</button>
		  </form>

1.2 dao层,DiaryDao类写查询方法;

这里主要是对t_title的一个模糊查询,所以要用到like字符匹配查询; 

//根据日志标题的模糊查询
		if(StringUtil.isNotEmpty(s_diary.getTitle())){
			sb.append(" and t1.title like '%"+s_diary.getTitle()+"%'");
		}

 1.3 web层,MainServlet写后台处理前台的数据;

这里主要是处理前台获取的t_title,还有仅当我们点击"搜索日志"这个按钮时,才可以继续查询,因此要进行判断

还有要用session保存一下数据,以及当我们点击下一页时,要对session进行非空判断; 

//从前台获取日志类别的Id和日志日期的Id,diary是专门用来封装查询条件的
		Diary diary=new Diary();
		String s_typeId=request.getParameter("s_typeId");
		String s_releaseDateStr=request.getParameter("s_releaseDateStr");
		String s_title=request.getParameter("s_title");
		String all=request.getParameter("all");
		if("true".equals(all)){
			if(StringUtil.isNotEmpty(s_title)){
				diary.setTitle(s_title);
			}
			//将数据存放在session中
			session.setAttribute("s_title", s_title);
			//将日志类别和日志日期的session全都移除掉
			session.removeAttribute("s_typeId");
			session.removeAttribute("s_releaseDateStr");
		} else{
			if(StringUtil.isNotEmpty(s_typeId)){
				diary.setTypeId(Integer.parseInt(s_typeId));
				//将数据存放在session中
				session.setAttribute("s_typeId", s_typeId);
				//将日志日期的session移除掉,否则会产生排斥
				session.removeAttribute("s_releaseDateStr");
				//将title的session移除掉,否则会产生排斥
				session.removeAttribute("s_title");
			}
			if(StringUtil.isNotEmpty(s_releaseDateStr)){
				s_releaseDateStr=new String(s_releaseDateStr.getBytes("ISO-8859-1"),"UTF-8");
				diary.setReleaseDateStr(s_releaseDateStr);
				//将数据存放在session中
				session.setAttribute("s_releaseDateStr", s_releaseDateStr);
				//将日志类别的session移除掉
				session.removeAttribute("s_typeId");
				//将title的session移除掉
				session.removeAttribute("s_title");
			}
			//判断session是否为空,解决点击下一页又搜索全部数据的问题
			if(StringUtil.isEmpty(s_typeId)){
				Object o=session.getAttribute("s_typeId");
				if(o!=null){
					diary.setTypeId(Integer.parseInt((String)o));
				}
			}
			if(StringUtil.isEmpty(s_releaseDateStr)){
				Object o=session.getAttribute("s_releaseDateStr");
				if(o!=null){
					diary.setReleaseDateStr((String)o);
				}
			}
			if(StringUtil.isEmpty(s_title)){
				Object o=session.getAttribute("s_title");
				if(o!=null){
					diary.setReleaseDateStr((String)o);
				}
			}
		}

运行结果:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值