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

📄 viewcontroller.java

📁 openfans 0.1 using: eclipse, maven, spring, hibernate, mysql,common-validator,sitemesh.....
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package org.openfans.web;

import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

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

import org.openfans.domain.Article;
import org.openfans.domain.Comment;
import org.openfans.domain.Facade;
import org.openfans.domain.Fans;
import org.openfans.domain.Feed;
import org.openfans.domain.FeedItem;
import org.openfans.domain.Group;
import org.openfans.domain.Page;
import org.openfans.domain.PreFans;
import org.openfans.domain.RootTag;
import org.openfans.domain.Tag;
import org.openfans.domain.UseStatus;
import org.openfans.util.ThreadFans;
import org.openfans.web.clickstream.OpenfansClickstream;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

/**
 * Desc:User MultiActionController to handle all View or List task<br>
 * Date:2007-1-22<br>
 * 
 * @author pesome<br>
 * @email:pesome@gmail.com<br>
 */
public class ViewController extends MultiActionController {
	private int articlePageSize;

	private Facade facade = null;

	private int fansPageSize;

	private int feedItemPageSize;

	private int rootTagPageSize;

	private int feedPageSize;

	private int tagPageSize;

	private int messagePageSize;

	/**
	 * 功能说明:区分几种statusSet,并放入model map�?<br>
	 * 创建者:张俊<br>
	 * 创建时间�?2006-2-25<br>
	 * 
	 * @param set
	 * @param map
	 */
	private void divideStatusSet(Set<UseStatus> set, Map<String, Object> map) {
		map.put("used", getStatusSet(UseStatus.USED, set));
		map.put("using", getStatusSet(UseStatus.USING, set));
		map.put("prepare", getStatusSet(UseStatus.PREPARE, set));
	}

	private String getArticleOrderFromReq(HttpServletRequest request) {
		return Article.getOrder(getOrderIntFromReq(request));
	}

	private String getFansOrderFromReq(HttpServletRequest request) {
		return Fans.getOrder(getOrderIntFromReq(request));
	}

	/**
	 * 功能说明:所有需要排序的地方,从request获取排序�?<br>
	 * 创建者:张俊<br>
	 * 创建时间�?2006-5-12<br>
	 * 
	 * @param request
	 * @return
	 */
	private int getOrderIntFromReq(HttpServletRequest request) {
		String order = request.getParameter("o");
		int orderInt = 0;
		if (order != null && !"".equals(order.trim())) {
			orderInt = Integer.parseInt(order);
		}
		return orderInt;
	}

	/**
	 * �?有需要过滤的地方,从request获取过滤�?
	 * 
	 * @param request
	 * @return
	 */
	private int getConditionIntFromReq(HttpServletRequest request) {
		String condition = request.getParameter("c");
		int conditionInt = 0;
		if (condition != null && !"".equals(condition.trim())) {
			conditionInt = Integer.parseInt(condition);
		}
		return conditionInt;
	}

	private int getPageNum(HttpServletRequest request) {
		int pageNum = 1;
		String page = request.getParameter("page");
		if (page != null && page.trim().length() != 0) {
			pageNum = Integer.parseInt(page);
		}
		return pageNum;
	}

	/**
	 * 功能说明:从statusSet中取出特定状态的set<br>
	 * 创建者:张俊<br>
	 * 创建时间�?2006-2-25<br>
	 * 
	 * @param i
	 * @param set
	 * @return
	 */
	private Set getStatusSet(int i, Set<UseStatus> set) {
		Set<UseStatus> ss = new HashSet<UseStatus>();
		for (UseStatus us : set) {
			if (us.getStatus() == i) {
				ss.add(us);
			}
		}
		return ss;
	}

	private String getTagOrderFromReq(HttpServletRequest request) {
		return Tag.getOrder(getOrderIntFromReq(request));
	}

	private void hasNextAndPre(int pageNum, int size, List l,
			Map<String, Object> map) {
		if (pageNum > 1) {
			map.put("pre", String.valueOf(pageNum - 1));
		}
		// �?化分页,不count总数,会有一点小问题�?
		// 就是恰好到这页的�?后一个是全部的结束时,会出现空的下一�?
		if (l.size() == size) {
			map.put("next", String.valueOf(pageNum + 1));
		}
	}

	public ModelAndView listArticle(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		int pageNum = getPageNum(request);
		String type = request.getParameter("type");
		String title = request.getParameter("title");
		String order = getArticleOrderFromReq(request);
		Page page = facade.searchArticles(title, order, type, pageNum,
				articlePageSize);
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("page", page);
		map.put("type", type);
		map.put("title", title);
		putOrderToMap(request, map);
		return new ModelAndView("public/listArticle", map);
	}

	public ModelAndView listSavedArticle(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		int pageNum = getPageNum(request);

		// String type = request.getParameter("type");
		String tag = request.getParameter("tag");

		String order = "article_id desc";
		Page page = facade.searchFansSavedArticles(
				ThreadFans.get().getFansId(), tag, pageNum, articlePageSize,
				order);
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("tag", tag);
		map.put("page", page);
		putOrderToMap(request, map);
		// hasNextAndPre(pageNum, articlePageSize, l, map);
		return new ModelAndView("ajax/listSavedArticle", map);
	}

	public ModelAndView listFansSnippet(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		int pageNum = getPageNum(request);

		// String type = request.getParameter("type");
		String tag = request.getParameter("tag");
		String size = request.getParameter("size");
		int pageSize = 10;
		if (null != size && !"".equals(size)) {
			pageSize = Integer.parseInt(size);
		}
		String order = "id desc";
		Page page = facade.getPagedFansSnippet(ThreadFans.get(), tag, order,
				pageNum, pageSize);

		Map<String, Object> map = new HashMap<String, Object>();
		map.put("tag", tag);
		map.put("page", page);
		// putOrderToMap(request, map);
		// hasNextAndPre(pageNum, articlePageSize, l, map);
		return new ModelAndView("ajax/listFansSnippet", map);
	}

	public ModelAndView listSnippet(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		int pageNum = getPageNum(request);

		// String type = request.getParameter("type");
		String tag = request.getParameter("tag");
		String size = request.getParameter("size");
		int pageSize = 10;
		if (null != size && !"".equals(size)) {
			pageSize = Integer.parseInt(size);
		}
		String order = "id desc";
		Page page = facade.getPagedSnippet(tag, order, pageNum, pageSize);

		Map<String, Object> map = new HashMap<String, Object>();
		map.put("tag", tag);
		map.put("page", page);
		// putOrderToMap(request, map);
		// hasNextAndPre(pageNum, articlePageSize, l, map);
		return new ModelAndView("public/snippet/listSnippet", map);
	}

	public ModelAndView myFavorite(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		ThreadFans.authorize();
		return new ModelAndView("public/myFavorite");
	}

	public ModelAndView mySnippet(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		ThreadFans.authorize();
		return new ModelAndView("public/snippet/mySnippet");
	}

	public ModelAndView listFans(HttpServletRequest request,
			HttpServletResponse response) throws Exception {

		int pageNum = getPageNum(request);
		Page page = facade.getPagedFans(pageNum, fansPageSize,
				getFansOrderFromReq(request));
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("page", page);
		putOrderToMap(request, map);
		return new ModelAndView("public/listFans", map);
	}

	/**
	 * 用户查看最新日志列表.游客显示所有日志,用户只显示他订阅过的Feed所产生的日志 Author:pesome<br>
	 * Date:2007-1-22<br>
	 * 
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	public ModelAndView listFeedItem(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		return new ModelAndView("public/listFeedItem");
	}

	/**
	 * 列出用户所提交的Feed产生的日志<br>
	 * Author:pesome<br>
	 * Date:2007-1-22<br>
	 * 
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	public ModelAndView listFansFeedItem(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		String name = request.getParameter("name");
		Fans fans = facade.getFans(name);
		int pageNum = getPageNum(request);

		Page page = facade.getPagedFansFeedItems(fans, "id desc", pageNum,
				feedItemPageSize);
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("page", page);
		map.put("fans", fans);
		return new ModelAndView("public/listFansFeedItem", map);
	}

	public ModelAndView listTagFeedItem(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		String id = request.getParameter("id");
		Tag tag = facade.getTag(Integer.parseInt(id));
		int pageNum = getPageNum(request);

		Page page = facade.getPagedTagFeedItems(tag, "id desc", pageNum,
				feedItemPageSize);
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("page", page);
		map.put("tag", tag);
		return new ModelAndView("public/listTagFeedItem", map);
	}

	/**
	 * Get feedItems of Feed
	 * 
	 * @param request
	 * @param response
	 * @return

⌨️ 快捷键说明

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