searchdoccontroller.java

来自「Java的框架」· Java 代码 · 共 84 行

JAVA
84
字号
package mcaps.core.docman.webapp.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.lucene.queryParser.ParseException;
import org.springframework.web.servlet.ModelAndView;

import mcap.core.base.webapp.controller.BaseController;
import mcap.core.search.model.PagedResultSet;
import mcap.core.search.service.SearchException;
import mcap.core.search.service.SearchManager;
import mcaps.core.docman.util.NameConstants;


/**
 * This class extends Controller that will interacts with the
 * SearchManager to handle request to search file info
 * from index.
 *
 * @author Chan Chin Wei
 * @date Jun 28, 2006
 * @version 1.0.1.0
 */
public class SearchDocController extends BaseController {
	
	private static final String SEARCH_VIEW = "core/docMan/searchDoc";
	
	private SearchManager searchManager;
	
	public void setSearchManager (SearchManager searchManager) {
		this.searchManager = searchManager;
	}

//===========================================================================================================
	
// @Override
protected ModelAndView handleRequestInternal (HttpServletRequest request, HttpServletResponse response) throws Exception {
	ModelAndView mv = null;
	String query = request.getParameter ("query");
	if (query != null && !query.equals("")) {
		String searchPub = request.getParameter (NameConstants.DOC_SEARCH_PUB);
		if (searchPub == null)
			searchPub = "";
		String pageSize = request.getParameter (NameConstants.DOC_SEARCH_PAGESIZE);
		int ipageSize = 10; //set default 10
		if (pageSize != null && !pageSize.equals(""))
			ipageSize = Integer.parseInt(pageSize);
		String pageIndex = request.getParameter (NameConstants.DOC_SEARCH_PAGEINDEX);
		int ipageIndex = 0;
		if (pageIndex != null && !pageIndex.equals(""))
			ipageIndex = Integer.parseInt(pageIndex);
		//need to add additional field search for searching published file
		PagedResultSet prs = null;
		try {
			if (searchPub != null && !searchPub.equals("")) {
				prs = searchManager.search(NameConstants.ROOT_FOLDER_NAME, query + " AND +additional." + searchPub + ":true", 
								ipageSize, ipageIndex);
			}
			else
				prs = searchManager.search(NameConstants.ROOT_FOLDER_NAME, query, ipageSize, ipageIndex);
		}
		catch (SearchException e) {
			Throwable ie = e.getCause();
			if (ie instanceof ParseException)
				saveError (request, "Unable to parse query string.");
		}
		mv = new ModelAndView (SEARCH_VIEW, NameConstants.DOC_SEARCH_RESULT, prs);
		mv.addObject(NameConstants.DOC_SEARCH_PUB, searchPub);
		mv.addObject(NameConstants.DOC_SEARCH_PAGESIZE, new Integer(ipageSize));
		mv.addObject(NameConstants.DOC_SEARCH_PAGEINDEX, new Integer(ipageIndex));
		if (searchPub != null && !searchPub.equals(""))
			mv.addObject(NameConstants.DOC_SEARCH_URL_PREFIX, NameConstants.DOC_PUB);
		else
			mv.addObject(NameConstants.DOC_SEARCH_URL_PREFIX, NameConstants.DOC_ADMIN);
	}
	else {
		mv = new ModelAndView (SEARCH_VIEW, NameConstants.DOC_SEARCH_RESULT, null);
	}
	return mv;
}
	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?