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 + -
显示快捷键?