⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newslistcontroller.java

📁 这是基于spring +hibernate的项目
💻 JAVA
字号:
package com.pure.web.spring.manager.news;

import java.util.HashMap;
import java.util.Map;

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

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import com.pure.domain.News;
import com.pure.domain.logic.NewsFacade;
import com.pure.page.Page;
import com.pure.page.PageHelper;
import com.pure.sys.Constant;
import com.pure.util.ParamUtil;
import com.pure.util.PureUtil;

/**
 * 新闻管理控制器
 * 
 * @author pure
 *
 */
public class NewsListController implements Controller {
	protected final Log logger = LogFactory.getLog(getClass());
	private NewsFacade newsFacade;

	private String successView;

	public ModelAndView handleRequest(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		String action = ParamUtil.getString(request, "curAction", "");
		if ("del".equals(action)) {
			delNews(request);
		}
		return newsList(request);
	}

	/**
	 * 新闻列表
	 * 
	 * @param request
	 * @return
	 */
	private ModelAndView newsList(HttpServletRequest request) {
		HttpSession session = request.getSession();
		String contextPath = request.getContextPath();
		String totalHql = "select count(id) from News";
		String hql = "from News as news left join fetch news.newssort order by news.id desc";
		String realPath = session.getServletContext().getRealPath("/");
		String templatePath = Constant.TEMPLATEPATH;
		String templateName = Constant.TEMPLATENAME;
		String url = "admin/news/newsList.jspx";

		int perPage = 10;
		int cPage = ParamUtil.getInt(request, "page", 1);
		int total = this.getNewsFacade().getTotal(totalHql);

		PageHelper pageHelper = new PageHelper(request);
		perPage = pageHelper.doCustomPerPage(perPage);

		Page page = new Page();
		page.setPerPage(perPage);
		/**
		 * 此处处理页码为负数、大于总页数、删除最后一页数据后应转向最后一页的页码-1、页码非数字
		 */
		cPage = pageHelper.getCpage(total, perPage, cPage);
		page.setPage(cPage);
		page.setRealPath(realPath);
		page.setPageTemplatePath(templatePath);
		page.setPageTemplate(templateName);
		page.setHql(hql);
		page.setTotal(total);
		page.setContextPath(contextPath);
		page.setUrl(url);
		page.setStartRs((cPage - 1) * perPage);

		Map model = new HashMap();
		model.put("newsList", this.getNewsFacade().getNewsList(page));
		model.put("page", pageHelper.getPageBreakStr(page));
		return new ModelAndView(this.successView, model);
	}

	/**
	 * 根据选择批量删除新闻
	 * 
	 * @param request
	 */
	private void delNews(HttpServletRequest request) {
		HttpSession session = request.getSession();
		String realPath = session.getServletContext().getRealPath("/");
		String[] ids = request.getParameterValues("id");
		if (null != ids)
			for (int i = 0; i < ids.length; i++) {
				News news = this.getNewsFacade().getNews(Integer.parseInt(ids[i]));
				//删除与此相关的静态文件及上传的文件资源
				PureUtil.delFile(realPath+news.getFilename());
				PureUtil.delUploadFile(news.getNewscontent(),realPath+Constant.UPLOADPATH);
				//删除数据库中的记录
				this.getNewsFacade().delNews(Integer.parseInt(ids[i]));
			}
	}

	public void setSuccessView(String successView) {
		this.successView = successView;
	}

	public NewsFacade getNewsFacade() {
		return newsFacade;
	}

	public void setNewsFacade(NewsFacade newsFacade) {
		this.newsFacade = newsFacade;
	}

}

⌨️ 快捷键说明

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