urlutils.java

来自「社区文章采用的是平板、树形自由选择的两种展示方式」· Java 代码 · 共 374 行

JAVA
374
字号
/* 
 * Created on 2007-2-13
 * Last modified on 2007-6-5
 * Powered by YeQiangWei.com
 */
package com.yeqiangwei.club.view.util;

import javax.servlet.http.HttpServletRequest;

import com.yeqiangwei.club.service.ServiceLocator;
import com.yeqiangwei.club.service.ServiceWrapper;
import com.yeqiangwei.club.service.forum.ForumService;
import com.yeqiangwei.club.model.Forum;
import com.yeqiangwei.club.model.Reply;
import com.yeqiangwei.club.model.Topic;
import com.yeqiangwei.club.service.util.BasicInfoService;
import com.yeqiangwei.club.view.model.ForumView;
import com.yeqiangwei.club.view.model.ManageLogView;
import com.yeqiangwei.club.view.model.ReplyView;
import com.yeqiangwei.club.view.model.TopicView;
import com.yeqiangwei.club.view.model.UserView;
import com.yeqiangwei.util.ParamUtils;
import com.yeqiangwei.util.Validator;

public class UrlUtils {
	
	public static final int FORUM = 1;
	
	public static final int TOPIC = 2;
	
	public static final int REPLY = 3;
	
	public static final int USER = 0;
	
	public static final int TOPIC_TXT = 4;
	
	/*
	public static String getUrl(int type, int id, int idd, HttpServletRequest request){
		return UrlUtils.getUrl(type,id,String.valueOf(idd),request);
	}
	*/
	
	public static String getUrl(ManageLogView log, HttpServletRequest request){
		if(log.getReplyId()>0){
    		return (UrlUtils.getUrl(UrlUtils.REPLY, log.getReplyId(), log.getForumId(), request));
    	}
    	else if(log.getTopicId()>0){
    		return (UrlUtils.getUrl(UrlUtils.TOPIC, log.getTopicId(), log.getForumId(), request));
    	}
    	else if(log.getForumId()>0){
    		return (UrlUtils.getUrl(UrlUtils.FORUM, log.getForumId(), 0, request));
    	}
    	else if(log.getUserId()>0){
    		return (UrlUtils.getUrl(UrlUtils.USER, log.getUserId(), 0, request));
    	}else{
    		return "http://www.yeqiangwei.com";
    	}
	}
	
	public static String getUrl(int type, TopicView view, HttpServletRequest request){
		return getUrl(type, view.getTopicId(), view.getForumId(), request);
	}

	public static String getUrl(int type, ReplyView view, HttpServletRequest request){
		return getUrl(type, view.getReplyId(), view.getForumId(), request);
	}
	
	public static String getTopicUrl(HttpServletRequest request){
		return getUrl(UrlUtils.TOPIC, ParamUtils.getIntParameter(request,"topicId")
				, ParamUtils.getIntParameter(request,"forumId")
				, request);
	}
	
	public static String getReplyUrl(HttpServletRequest request){
		return getUrl(UrlUtils.REPLY, ParamUtils.getIntParameter(request,"replyId")
				, ParamUtils.getIntParameter(request,"forumId")
				, request);
	}
	
	public static String getTopicUrl(Topic topic){
		StringBuffer sb = new StringBuffer();
		if(getBasicInfoService().findOnly().getUrlRewrite()){
			sb.append("/club/f");
			sb.append(topic.getForumId());
			sb.append("b0");
			sb.append("l0");
			sb.append("fp1");
			sb.append("t");
			sb.append(topic.getTopicId());
			sb.append("p1");
			sb.append(".html");
		}else{
			sb.append("/club/thread.jsp?forumId=");
			sb.append(topic.getForumId());
			sb.append("&better=0");
			sb.append("&labelId=0");
			sb.append("&fpage=1");
			sb.append("&topicId=");
			sb.append(topic.getTopicId());
			sb.append("&page=1");
		}
		return sb.toString();
	}
	
	public static String getReplyUrl(Reply reply){
		StringBuffer sb = new StringBuffer();
		if(getBasicInfoService().findOnly().getUrlRewrite()){
			sb.append("/club/f");
			sb.append(reply.getForumId());
			sb.append("b0");
			sb.append("l0");
			sb.append("fp1");
			sb.append("r");
			sb.append(reply.getReplyId());
			sb.append("p1");
			sb.append(".html");
		}else{
			sb.append("/club/thread.jsp?forumId=");
			sb.append(reply.getForumId());
			sb.append("&better=0");
			sb.append("&labelId=0");
			sb.append("&fpage=1");
			sb.append("&replyId=");
			sb.append(reply.getReplyId());
			sb.append("&page=1");
		}
		return sb.toString();
	}
	
	public static String getUserUrl(HttpServletRequest request, UserView user){
		if(Validator.isEmpty(user)){
			return "/club/main.jsp";
		}
		return getUrl(UrlUtils.USER, user.getUserId(), 0, request);
	}
	
	public static String getUrl(int type, int id, int idd, HttpServletRequest request){
		String url = "/";
		StringBuffer sb = new StringBuffer();
		Integer forumId;
		sb.append(getBasicInfoService().findOnly().getUrl());
		switch(type){
			case USER:
				sb.append("/club/");
				if(getBasicInfoService().findOnly().getUrlRewrite()){
					sb.append("u");
					sb.append(id);
					sb.append(".html");
				}else{
					sb.append("/club/user.jsp?userId=");
					sb.append(id);
				}
			break;
			case FORUM:
				Forum forumModel = UrlUtils.getForumService().findById(id);
				if(forumModel.getCategory()==4){
					sb.append(forumModel.getLinkUrl());
				}
				else if(getBasicInfoService().findOnly().getUrlRewrite()){
					sb.append("/club/f");
					sb.append(id);
					sb.append("b");
					sb.append(ParamUtils.getStringParameter(request,"better","0"));
					sb.append("l");
					sb.append(ParamUtils.getStringParameter(request,"labelId","0"));
					sb.append("fp");
					sb.append(ParamUtils.getStringParameter(request,"fpage","1"));
					sb.append(".html");
				}else{
					sb.append("/club/forum.jsp?forumId=");
					sb.append(id);
					sb.append("&better");
					sb.append(ParamUtils.getStringParameter(request,"better","0"));
					sb.append("&labelId=");
					sb.append(ParamUtils.getStringParameter(request,"labelId","0"));
					sb.append("&fpage=");
					sb.append(ParamUtils.getStringParameter(request,"fpage","1"));
				}
			break;
			case TOPIC:
				forumId = idd;
				if(!Validator.isEmpty(request)&&(Validator.isEmpty(forumId)||forumId.intValue()<=0)){
					forumId = ParamUtils.getIntAuto(request,"forumId");
				}
				if(getBasicInfoService().findOnly().getUrlRewrite()){
					sb.append("/club/f");
					sb.append(forumId);
					sb.append("b");
					sb.append(ParamUtils.getStringParameter(request,"better","0"));
					sb.append("l");
					sb.append(ParamUtils.getStringParameter(request,"labelId","0"));
					sb.append("fp");
					sb.append(ParamUtils.getStringParameter(request,"fpage","1"));
					sb.append("t");
					sb.append(id);
					sb.append("p");
					if(ParamUtils.getStringParameter(request,"act","").equals("addreply")&&ParamUtils.getIntParameter(request,"replyId",0)==0){
						sb.append(ParamUtils.getStringParameter(request,"lpage","1"));
					}else{
						sb.append(ParamUtils.getStringParameter(request,"page","1"));
					}
					sb.append(".html");
				}else{
					sb.append("/club/thread.jsp?forumId=");
					sb.append(forumId);
					sb.append("&better");
					sb.append(ParamUtils.getStringParameter(request,"better","0"));
					sb.append("&labelId=");
					sb.append(ParamUtils.getStringParameter(request,"labelId","0"));
					sb.append("&fpage=");
					sb.append(ParamUtils.getStringParameter(request,"fpage","1"));
					sb.append("&topicId=");
					sb.append(id);
					sb.append("&page=");
					if(ParamUtils.getStringParameter(request,"act","").equals("addreply")&&ParamUtils.getIntParameter(request,"replyId",0)==0){
						sb.append(ParamUtils.getStringParameter(request,"lpage","1"));
					}else{
						sb.append(ParamUtils.getStringParameter(request,"page","1"));
					}
				}
			break;
			case TOPIC_TXT:
				forumId = idd;
				if(!Validator.isEmpty(request)&&(Validator.isEmpty(forumId)||forumId.intValue()<=0)){
					forumId = ParamUtils.getIntAuto(request,"forumId");
				}
				if(getBasicInfoService().findOnly().getUrlRewrite()){
					sb.append("/club/f");
					sb.append(forumId);
					sb.append("b");
					sb.append(ParamUtils.getStringParameter(request,"better","0"));
					sb.append("l");
					sb.append(ParamUtils.getStringParameter(request,"labelId","0"));
					sb.append("fp");
					sb.append(ParamUtils.getStringParameter(request,"fpage","1"));
					sb.append("t");
					sb.append(id);
					sb.append("p");
					if(ParamUtils.getStringParameter(request,"act","").equals("addreply")&&ParamUtils.getIntParameter(request,"replyId",0)==0){
						sb.append(ParamUtils.getStringParameter(request,"lpage","1"));
					}else{
						sb.append(ParamUtils.getStringParameter(request,"page","1"));
					}
					sb.append("txt");
					sb.append(".html");
				}else{
					sb.append("/club/threadtxt.jsp?forumId=");
					sb.append(forumId);
					sb.append("&better");
					sb.append(ParamUtils.getStringParameter(request,"better","0"));
					sb.append("&labelId=");
					sb.append(ParamUtils.getStringParameter(request,"labelId","0"));
					sb.append("&fpage=");
					sb.append(ParamUtils.getStringParameter(request,"fpage","1"));
					sb.append("&topicId=");
					sb.append(id);
					sb.append("&page=");
					if(ParamUtils.getStringParameter(request,"act","").equals("addreply")&&ParamUtils.getIntParameter(request,"replyId",0)==0){
						sb.append(ParamUtils.getStringParameter(request,"lpage","1"));
					}else{
						sb.append(ParamUtils.getStringParameter(request,"page","1"));
					}
				}
			break;
			case REPLY:
				forumId = idd;
				if(!Validator.isEmpty(request)&&Validator.isEmpty(forumId)){
					forumId = ParamUtils.getIntAuto(request,"forumId");
				}
				if(getBasicInfoService().findOnly().getUrlRewrite()){
					sb.append("/club/f");
					sb.append(forumId);
					sb.append("b");
					sb.append(ParamUtils.getStringParameter(request,"better","0"));
					sb.append("l");
					sb.append(ParamUtils.getStringParameter(request,"labelId","0"));
					sb.append("fp");
					sb.append(ParamUtils.getStringParameter(request,"fpage","1"));
					sb.append("r");
					sb.append(id);
					sb.append("p");
					sb.append(ParamUtils.getStringParameter(request,"page","1"));
					sb.append(".html");
				}else{
					sb.append("/club/thread.jsp?forumId=");
					sb.append(forumId);
					sb.append("&better");
					sb.append(ParamUtils.getStringParameter(request,"better","0"));
					sb.append("&labelId=");
					sb.append(ParamUtils.getStringParameter(request,"labelId","0"));
					sb.append("&fpage=");
					sb.append(ParamUtils.getStringParameter(request,"fpage","1"));
					sb.append("&replyId=");
					sb.append(id);
					sb.append("&page=");
					sb.append(ParamUtils.getStringParameter(request,"page","1"));
				}
			break;
		}
		if(sb!=null){
			url = sb.toString();
		}
		return url;
	}
	
	public static String getForumLabelUrl(ForumView forum, int labelId, HttpServletRequest request){
		StringBuffer sb = new StringBuffer();
		sb.append(getBasicInfoService().findOnly().getUrl());
		if(getBasicInfoService().findOnly().getUrlRewrite()){
			sb.append("/club/f");
			sb.append(forum.getForumId());
			sb.append("b");
			sb.append(ParamUtils.getStringParameter(request,"better","0"));
			sb.append("l");
			sb.append(labelId);
			sb.append("fp");
			sb.append(ParamUtils.getStringParameter(request,"fpage","1"));
			sb.append(".html");
		}else{
			sb.append("/club/forum.jsp?forumId=");
			sb.append(forum.getForumId());
			sb.append("&better");
			sb.append(ParamUtils.getStringParameter(request,"better","0"));
			sb.append("&labelId=");
			sb.append(labelId);
			sb.append("&fpage=");
			sb.append(ParamUtils.getStringParameter(request,"fpage","1"));
			
		}
		return sb.toString();
	}
	
	public static String forumUrl(ForumView forum, String value, String url, String rel, String property,HttpServletRequest request){
		if(forum==null){
			return "";
		}
		StringBuffer sb = new StringBuffer();
     	if(forum.getType()==1){
        	sb.append("<a href=\"");
        	if(!Validator.isEmpty(url)){
        		sb.append(url);
        	}
        	sb.append(UrlUtils.getUrl(UrlUtils.FORUM,forum.getForumId(),0,request));
        	sb.append("\"");
        	if(!Validator.isEmpty(rel)){
        		sb.append(" target=\"");
        		sb.append(rel);
        		sb.append("\"");
        	}
        	if(!Validator.isEmpty(property)){
        		sb.append(property);
        	}
        	sb.append(">");
        	if(Validator.isEmpty(value)){
        		sb.append(forum.getForumName());
        	}else{
        		sb.append(value);
        	}
        	sb.append("</a>");
		}else{
			sb.append(forum.getForumName());
		}
     	return sb.toString();
	}
	
	public static BasicInfoService getBasicInfoService() {
		return ServiceWrapper.<BasicInfoService>getSingletonInstance(ServiceLocator.BASICINFO);
	}
	
	public static ForumService getForumService() {
		return ServiceWrapper.<ForumService>getSingletonInstance(ServiceLocator.FORUM);
	}
}

⌨️ 快捷键说明

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