目录
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> 搜索日志</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);
}
}
}
运行结果: