📄 searchaction.java
字号:
package com.yhcms.index.action;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import com.yhcms.artclass.dao.ArtClassDaoIm;
import com.yhcms.artclass.itface.ArtClassDao;
import com.yhcms.article.dao.ArticleDaoIm;
import com.yhcms.article.itface.ArticleDao;
import com.yhcms.common.Pages;
import com.yhcms.db.DBConnException;
import com.yhcms.index.form.SearchForm;
import com.yhcms.utils.ReqUtils;
/**
* <p>Title:站内搜索Action</p>
* <li>站内搜索</li>
* <li>如果搜索内容有多页,则需要把搜索Key和Id放在session里。</li>
* <li>查看非第一页时,再从session里取出Key和Id搜索。</li>
* <br><b>CopyRight: yyhweb[由由华网]</b>
* @author stephen
* @version YH-2.0
*/
public class SearchAction extends Action {
public ActionForward execute(ActionMapping actionmapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response){
Logger yhlog = Logger.getLogger(SearchAction.class.getName());
ActionMessages errors = new ActionMessages();
HttpSession session = request.getSession();
int curPage = ReqUtils.getInt(request,"curPage"); // 当前页数
SearchForm sform = (SearchForm)form;
String content = sform.getScontent();
int id = sform.getSchid();
if(content==null || content.length()<=0){
content = session.getAttribute("search").toString(); // 非第一页要取得搜索key
}
if(id == -1){
id = Integer.parseInt(session.getAttribute("cid").toString());
}
int pageSize = 20; // pagesize 可以由管理员再后台定义,此处有待改善
int begin = 0; // 开始查询的位置
List artList = null;
List cList = null; // 系统内部栏目-搜索用
// 分页
int total = 0; // 该栏目文章总数
String link = "Search.html?cid="+id;// 部分相同链接
String pageInfo = "";// 分页后得到的字符串结果
Pages pages = null;
if(curPage>1){ // 如果不是第一页,则从该页的第一条开始
begin = (curPage-1)*pageSize;
}
ArticleDao artdao = ArticleDaoIm.getInstance();
ArtClassDao classdao = ArtClassDaoIm.getInstance();
try {
cList = classdao.getAllInClass();
if(content!=null && content.length()>0){
artList = artdao.searchTitle(content, id, begin, pageSize);
total = artdao.searchTitleNum(content, id);
pages = new Pages(total,curPage,pageSize,link);
pageInfo = pages.getPageInfo();
}else{
yhlog.info("Search article,but the key is empty.");
errors.add("search.content.null",new ActionMessage("search.content.null"));
saveErrors(request,errors);
}
} catch (DBConnException e) {
yhlog.warn("When get search article,throw an Exception.The class id is:"+id);
}
if((pageInfo==null) || (pageInfo.equals(""))){
StringBuffer sb = new StringBuffer();
sb.append("<table class='tab' width=100% height=100% cellSpacing=0 cellPadding=0>");
sb.append("<tr><td>");
sb.append(" ");
sb.append("共");
sb.append("<b style=font-size:10pt>");
sb.append(1);
sb.append("</b>");
sb.append("页 ");
sb.append("<b style=font-size:10pt>");
sb.append(total);
sb.append("</b>");
sb.append("个记录 ");
sb.append("</td></tr>");
sb.append("<table>");
pageInfo = sb.toString();
sb = null;
}
if(artList==null){
artList = new ArrayList();
}
if(total>pageSize){ // 搜索结果有多页,非第一页要从session里取得搜索key
session.setAttribute("search", content);
session.setAttribute("cid", id);
}
request.setAttribute("scontent",content);
request.setAttribute("total",total);
request.setAttribute("artList",artList);
request.setAttribute("cList",cList);
request.setAttribute("pageInfo",pageInfo);
return actionmapping.findForward("Next");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -