⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 searchaction.java

📁 前台:文章浏览、发表留言、Game、Music 后台:文章相关:发表文章、修改文章、删除文章、批量移动文章 栏目相关:增加栏目、修改栏目、删除栏目、栏目链接、栏目排序系统栏目分为系统内部栏目和外部栏目
💻 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("&nbsp;&nbsp;");
 			sb.append("共");
 			sb.append("<b style=font-size:10pt>");
 			sb.append(1);
 			sb.append("</b>");
 			sb.append("页&nbsp;&nbsp;");
 			sb.append("<b style=font-size:10pt>");
 			sb.append(total);
 			sb.append("</b>");
 			sb.append("个记录&nbsp;&nbsp;");
 			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 + -