📄 viewcontroller.java
字号:
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 + -