📄 documentlistaction.java
字号:
/*
* DocumentListAction.java
*
* Created on 2006年9月6日, 上午5:35
*/
package action.library;
import dbservice.hibernate.HibernateService;
import dbservice.hibernate.PageCounter;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import model.newspress.hibernate.Newspress;
import model.newspress.hibernate.Newstype;
import model.newspress.hibernate.NewstypeUtil;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForward;
/**
*
* @author Administrator
* @version
*/
public class DocumentListAction extends Action {
/* forward name="success" path="" */
private final static String SUCCESS = "success";
/**
* This is the action called from the Struts framework.
* @param mapping The ActionMapping used to select this instance.
* @param form The optional ActionForm bean for this request.
* @param request The HTTP Request we are processing.
* @param response The HTTP Response we are processing.
* @throws java.lang.Exception
* @return
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// 从用户Http请求中得到参数page的值,即当前数据库游标移动方式
String page = request.getParameter("page");
// 获得HttpSession缓存
HttpSession httpSession = request.getSession();
// 从缓存中获得计数器
PageCounter pageCounter = (PageCounter)httpSession.getAttribute("docmentpagecounter");
if ( pageCounter == null) {
pageCounter = new PageCounter();
httpSession.setAttribute("docmentpagecounter", pageCounter);
}
// 设置页面最大允许显示的信息数量;也即访问数据库时,游标的最大活动范围
pageCounter.setMaxSize(20);
int rows = HibernateService.getRows("select count(*) from Document");
pageCounter.setTotalRows(rows);
int pages = rows % pageCounter.getMaxSize();
pages = pages == 0 ? rows/pageCounter.getMaxSize() : rows/pageCounter.getMaxSize() + 1;
pageCounter.setTotalPages(pages);
pageCounter.counter(page);
// 数据库游标从pageCounter.getFirstRow()开始, 活动范围为pageCounter.getMaxSize()。
// 在这个限制条件下,统计文档信息的总数量
List list = HibernateService.execQuery("from Document", pageCounter.getFirstRow(), pageCounter.getMaxSize());
if (list == null) {
return new ActionForward(mapping.getInput());
}
// 将统计出的文档信息存入缓存
httpSession.setAttribute("documentlist", list);
return mapping.findForward(SUCCESS);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -