📄 newslistaction.java
字号:
/*
* NewstypeSelectAction.java
*
* Created on 2006年6月4日, 下午5:52
*/
package action.newspress;
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 NewsListAction 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请求中得到参数type的值,即当前新闻类型信息的编号
String type = request.getParameter("type");
// 从用户Http请求中得到参数page的值,即当前数据库游标移动方式
String page = request.getParameter("page");
// 获得HttpSession缓存
HttpSession httpSession = request.getSession();
// 从缓存中获得计数器
PageCounter pageCounter = (PageCounter)httpSession.getAttribute("newspagecounter");
if ( pageCounter == null) {
pageCounter = new PageCounter();
httpSession.setAttribute("newspagecounter", pageCounter);
}
// 设置页面最大允许显示的信息数量;也即访问数据库时,游标的最大活动范围
pageCounter.setMaxSize(6);
int rows = HibernateService.getRows("select count(*) from Newspress where type=" + type);
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 Newspress where type=" + type, pageCounter.getFirstRow(), pageCounter.getMaxSize());
if (list == null) {
return new ActionForward(mapping.getInput());
}
// 将统计出的文档信息存入缓存
httpSession.setAttribute("newspresslist", list);
// 根据新闻类型编号,从数据库读取对应的类型信息
Newstype newstype = NewstypeUtil.find(type);
if (newstype == null) {
return new ActionForward(mapping.getInput());
}
// 将新闻类型信息存入缓存
httpSession.setAttribute("newstype", newstype);
return mapping.findForward(SUCCESS);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -