📄 basesearchlistaction.java
字号:
/*
* Created on 2005/11/17
*/
package com.leeman.wkexs.web.base;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
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 com.leeman.common.web.ui.CachedPager;
import com.leeman.common.web.ui.ScreenMessageHelper;
import com.leeman.common.web.ui.ScreenMessage;
/**
* @author Dennis
*/
public abstract class BaseSearchListAction extends BaseAction{
public Map getCmdMethodMap()
{
HashMap map = new HashMap();
map.put("newSearch", "newSearch");
map.put("search", "search");
map.put("nextPage", "nextPage");
map.put("prevPage", "prevPage");
return map;
}
public ActionForward newSearch(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
setSearchHiddenField(request, BaseConstants.REQ_SEARCH_LIST_MODE_NEW_SEARCH);
BaseCollectionCache collectionCache = (BaseCollectionCache)getCollectionCache(request);
collectionCache.setSearchListId(request.getParameter("searchListId"));
collectionCache.setSearchListPager (new CachedPager());
doNewSearch(mapping, form, request, response);
initSearchListForm(mapping, form, request, response);
return mapping.getInputForward();
}
protected void setSearchHiddenField(HttpServletRequest request)
{
ArrayList returnFieldNamelist = new ArrayList();
ArrayList sourceFieldNamelist = new ArrayList();
ArrayList preloadFieldNamelist = new ArrayList();
int returnSize = Integer.parseInt(request.getParameter("returnSize"));
for (int i=0; i < returnSize; i++){
returnFieldNamelist.add(request.getParameter("returnFieldName" + String.valueOf(i)));
}
int sourceSize = Integer.parseInt(request.getParameter("sourceSize"));
for (int i=0; i < sourceSize; i++){
sourceFieldNamelist.add(request.getParameter("sourceFieldName" + String.valueOf(i)));
}
int preloadSize = Integer.parseInt(request.getParameter("preloadSize"));
for (int i=0; i < preloadSize; i++){
preloadFieldNamelist.add(request.getParameter("preloadFieldName" + String.valueOf(i)));
}
request.setAttribute(BaseConstants.REQ_SEARCH_LIST_RETURNFORM, request.getParameter("returnFormName"));
request.setAttribute(BaseConstants.REQ_SEARCH_LIST_RETURNFIELD, returnFieldNamelist);
request.setAttribute(BaseConstants.REQ_SEARCH_LIST_SOURCEFIELD, sourceFieldNamelist);
request.setAttribute(BaseConstants.REQ_SEARCH_LIST_PRELOADFIELD, preloadFieldNamelist);
request.setAttribute(BaseConstants.REQ_SEARCH_LIST_MODE, BaseConstants.REQ_SEARCH_LIST_MODE_SEARCH);
}
protected void setSearchHiddenField(HttpServletRequest request, String searchMode)
{
ArrayList returnFieldNamelist = new ArrayList();
ArrayList sourceFieldNamelist = new ArrayList();
ArrayList preloadFieldNamelist = new ArrayList();
int returnSize = Integer.parseInt(request.getParameter("returnSize"));
for (int i=0; i < returnSize; i++){
returnFieldNamelist.add(request.getParameter("returnFieldName" + String.valueOf(i)));
}
int sourceSize = Integer.parseInt(request.getParameter("sourceSize"));
for (int i=0; i < sourceSize; i++){
sourceFieldNamelist.add(request.getParameter("sourceFieldName" + String.valueOf(i)));
}
int preloadSize = Integer.parseInt(request.getParameter("preloadSize"));
for (int i=0; i < preloadSize; i++){
preloadFieldNamelist.add(request.getParameter("preloadFieldName" + String.valueOf(i)));
}
request.setAttribute(BaseConstants.REQ_SEARCH_LIST_RETURNFORM, request.getParameter("returnFormName"));
request.setAttribute(BaseConstants.REQ_SEARCH_LIST_RETURNFIELD, returnFieldNamelist);
request.setAttribute(BaseConstants.REQ_SEARCH_LIST_SOURCEFIELD, sourceFieldNamelist);
request.setAttribute(BaseConstants.REQ_SEARCH_LIST_PRELOADFIELD, preloadFieldNamelist);
request.setAttribute(BaseConstants.REQ_SEARCH_LIST_MODE, searchMode);
}
public ActionForward search(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
setSearchHiddenField(request);
BaseCollectionCache collectionCache = (BaseCollectionCache)this.getCollectionCache(request);
collectionCache.setSearchListResults(new ArrayList());
CachedPager pager = new CachedPager();
collectionCache.setSearchListPager(pager);
doSearch(mapping, form, request, response);
if (collectionCache.getSearchListResults().size() == 0){
ScreenMessageHelper.addMessage(request, ScreenMessage.WARNING, this.getResourceMessage(request, "message.noRecordFound"), false, true);
}
else{
BaseSearchForm baseSearchForm = (BaseSearchForm)form;
baseSearchForm.setSearchResults(collectionCache.getPagedSearchListResult(pager.getCacheOffset(), pager.getPageRecordSize()));
request.setAttribute("searchPager", pager);
}
initSearchListForm(mapping, form, request, response);
if (getRstLinkId() != null){
this.setInitFocusByElementId(request, getRstLinkId());
}
return mapping.getInputForward();
}
public ActionForward prevPage(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
setSearchHiddenField(request);
BaseCollectionCache collectionCache = (BaseCollectionCache)this.getCollectionCache(request);
BaseSearchForm searchForm = (BaseSearchForm) form;
CachedPager pager = collectionCache.getSearchListPager();
if (pager.isPrevPageCached())
{
pager.setPageRecordStart(pager.getPrevPageStart());
searchForm.setSearchResults(collectionCache.getPagedSearchListResult(pager.getCacheOffset(), pager.getPageRecordSize()));
}
else
{
pager.setPageRecordStart(pager.getPrevPageStart());
doSearch(mapping, form, request, response);
((BaseSearchForm)form).setSearchResults(collectionCache.getPagedSearchListResult(pager.getCacheOffset(), pager.getPageRecordSize()));
}
request.setAttribute("searchPager", pager);
initSearchListForm(mapping, form, request, response);
if (getRstLinkId() != null){
this.setInitFocusByElementId(request, getRstLinkId());
}
return mapping.getInputForward();
}
public ActionForward nextPage(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
setSearchHiddenField(request);
BaseCollectionCache collectionCache = (BaseCollectionCache)this.getCollectionCache(request);
BaseSearchForm searchForm = (BaseSearchForm) form;
CachedPager pager = collectionCache.getSearchListPager();
if (pager.isNextPageCached())
{
pager.setPageRecordStart(pager.getNextPageStart());
searchForm.setSearchResults(collectionCache.getPagedSearchListResult(pager.getCacheOffset(), pager.getPageRecordSize()));
}
else
{
pager.setPageRecordStart(pager.getNextPageStart());
doSearch(mapping, form, request, response);
if (collectionCache.getPagedSearchListResult(pager.getCacheOffset(),pager.getPageRecordSize()).size() == 0){
pager.setPageRecordStart(pager.getPrevPageStart());
doSearch(mapping, form, request, response);
ScreenMessageHelper.addMessage(request, ScreenMessage.WARNING, this.getResourceMessage(request, "message.noMoreSearchResult"), false, true);
}
((BaseSearchForm)form).setSearchResults(collectionCache.getPagedSearchListResult(pager.getCacheOffset(), pager.getPageRecordSize()));
}
request.setAttribute("searchPager", pager);
initSearchListForm(mapping, form, request, response);
if (getRstLinkId() != null){
this.setInitFocusByElementId(request, getRstLinkId());
}
return mapping.getInputForward();
}
public void initSearchListForm(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception
{};
//abstract
public abstract void doNewSearch(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception;
public abstract void doSearch(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception;
/**
* @return
*/
public String getRstLinkId() {
return "rstlink_0";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -