package vod.controller;
import vod.model.PageInfo; import vod.model.MoreFootball; import vod.model.EvaluateDateBase; import java.io.IOException; import java.util.LinkedList; import java.util.Locale; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionServlet; import org.apache.struts.util.MessageResources; import java.sql.Connection; import java.sql.SQLException; import javax.sql.DataSource;
public class MoreFootballAction extends Action { Connection connection; LinkedList footballList;
public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{
ActionErrors errors = new ActionErrors(); HttpSession session = request.getSession();
int page=0;//目前需要的页数 int pageSize=0;//每页显示多少条数据 PageInfo footballPageInfo=null;//关于页数的相关信息 String tempPage;
//从web.xml文件中取得每页显示的条目数(我设置为10条) pageSize=Integer.parseInt((String)servlet.getServletContext().getInitParameter("pageSize"));
//如果没有明确页数那么默认为第一页 tempPage=request.getParameter("page"); if(tempPage==null) tempPage="1"; page=Integer.parseInt(tempPage);
try { DataSource dataSource =servlet.findDataSource(null); connection =dataSource.getConnection(); //检查session中是否已经存在了PageInfo,如果没有就执行查询,并且将footballPageInfo //放入session之中 //如果已经存在的话直接从session中读取 if(session.getAttribute("footballPageInfo")==null){ //参数分别为数据表名称,连接,每一页显示多少条目 footballPageInfo=EvaluateDateBase.getPageInfo("football",connection,pageSize); }else{ footballPageInfo=(PageInfo)session.getAttribute("footballPageInfo"); }
if(page > footballPageInfo.getTotalPage()){ page=footballPageInfo.getTotalPage(); }else if(page < 0){ page=1; } //设置footballPageInfo中的上一页和下一页的数值 footballPageInfo.setPage(page); //将footballPageInfo放入session session.setAttribute("footballPageInfo",footballPageInfo);
footballList=new LinkedList(); MoreFootball morefootball=new MoreFootball(); morefootball.setConn(connection);//设置数据的连接 //根据需要的页数和每页显示的页数条数得到LinkedList footballList=morefootball.getFootballList(page,pageSize); if (footballList==null) { saveErrors(request, errors); return (new ActionForward("No footballList in vod.controller.MoreFootallAction")); }
session.setAttribute("footballList",footballList);//将取得的footballList放入session
//do what you wish with myConnection } catch (SQLException sqle) { getServlet().log("Connection.process", sqle); } finally { //enclose this in a finally block to make //sure the connection is closed if(connection!=null) try { connection.close(); } catch (SQLException e) { getServlet().log("Connection.close", e); } }
return (mapping.findForward("success")); } } |