linktag.java

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

JAVA
538
字号
/* 
 * Created on 2007-2-13
 * Last modified on 2007-12-14
 * Powered by YeQiangWei.com
 */
package com.yeqiangwei.club.view.tag;

import java.io.IOException;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.TagSupport;

import org.apache.log4j.Logger;

import com.yeqiangwei.util.ParamUtils;
import com.yeqiangwei.util.StringHelper;
import com.yeqiangwei.util.Validator;
import com.yeqiangwei.club.service.ServiceLocator;
import com.yeqiangwei.club.service.ServiceWrapper;
import com.yeqiangwei.club.service.user.OnlineService;
import com.yeqiangwei.club.view.model.ForumView;
import com.yeqiangwei.club.view.model.GroupView;
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.club.view.util.EnCoder;
import com.yeqiangwei.club.view.util.ViewCoder;
import com.yeqiangwei.club.view.util.UrlUtils;
import com.yeqiangwei.club.view.util.UserSetUtils;
import com.yeqiangwei.html.OutPrint;

public class LinkTag  extends TagSupport{

	
	/**
	 * 
	 */
	private static final long serialVersionUID = 5733092675366645622L;

	private static final Logger logger = Logger.getLogger(LinkTag.class);
	
	private int idIs;
	
	private String type;
	
	private String url;
	
	private String rel;
	
	private String value;
	
	private long lvalue;
	
	private double dvalue;
	
	private int ivalue;
	
	private String param;
	
	private String property;
	
	private Object object;

	private TopicView topic;
	
	private ReplyView reply;
	
	private UserView user;
	
	private ForumView forum;
	
	private HttpServletRequest request;
	
	private boolean isDeleted = false;
	
	private boolean escapeUBB = false;

	public void setEscapeUBB(boolean escapeUBB) {
		this.escapeUBB = escapeUBB;
	}

	public void setForum(ForumView forum) {
		this.forum = forum;
	}

	public void setUser(UserView user) {
		this.user = user;
	}

	public void setLvalue(long lvalue) {
		this.lvalue = lvalue;
	}

	public void setRequest(HttpServletRequest request) {
		this.request = request;
	}

	public void setReply(ReplyView reply) {
		this.reply = reply;
	}

	public void setTopic(TopicView topic) {
		this.topic = topic;
	}

	public void setIdIs(int idIs) {
		this.idIs = idIs;
	}

	public void setParam(String param) {
		this.param = param;
	}

	public void setValue(String value) {
		this.value = value;
	}

	public void setType(String type) {
		this.type = type;
	}

	public void setProperty(String property) {
		this.property = property;
	}

	public void setRel(String rel) {
		this.rel = rel;
	}

	public void setUrl(String url) {
		this.url = url;
	}
	
    public void setObject(Object object) {
		this.object = object;
	}
    
	private void initialize(){
		if(!Validator.isEmpty(object)){
    		if(object instanceof TopicView){
    			topic = (TopicView) object;
    			if(Validator.isEmpty(value)){
    				value = topic.getTitle();
    			}
        		url = UrlUtils.getUrl(UrlUtils.TOPIC,topic,request);
        		isDeleted = topic.getIsDeleted();
    		}
    		else if(object instanceof ReplyView){
    			reply = (ReplyView) object;
    			if(Validator.isEmpty(value)){
    				value = reply.getTitle();
    			}
        		url = UrlUtils.getUrl(UrlUtils.REPLY,reply,request);
        		isDeleted = reply.getIsDeleted();
    		}
    	}
	}

	@SuppressWarnings("unchecked")
	public int doEndTag() throws JspTagException{ 
		this.initialize();
        StringBuilder sb = new StringBuilder();
        if(type.equals("userName")){
        	if(!Validator.isEmpty(user)){
        		sb.append(ViewCoder.userMenu(request, user, ""));
        	}else if(!Validator.isEmpty(topic)){
        		if(!Validator.isEmpty(property)){
        			sb.append(property);
        		}
        		sb.append(topic.getUserName());
        	}else if(!Validator.isEmpty(reply)){
        		if(!Validator.isEmpty(property)){
        			sb.append(property);
        		}
        		sb.append(reply.getUserName());
        	}else{
        		sb.append("");
        	}
        }
        else if(type.equals("userNameLink")){
        	if(Validator.isEmpty(user)){
        		sb.append(ViewCoder.userUrl(idIs,value,rel));
        	}else{
        		sb.append(ViewCoder.userUrl(user.getUserId(),user.getUserName(),rel));
        	}
        }
        else if(type.equals("reply_userName")){
        	sb.append(ViewCoder.reply_userName(request, reply, rel));
        }
        else if(type.equals("photo")){
        	sb.append(ViewCoder.photo(request,user, rel));        	
        }
        else if(type.equals("penName")){
        	if(!Validator.isEmpty(user)){
        		idIs = user.getUserId();
        		value = user.getPenName();
               	sb.append("<a href=\"");
            	if(!Validator.isEmpty(url)){
            		sb.append(url);
            	}
            	sb.append(UrlUtils.getUrl(UrlUtils.USER,idIs,0,request));
            	sb.append("\"");
            	if(!Validator.isEmpty(rel)){
            		sb.append(" target=\"");
            		sb.append(rel);
            		sb.append("\"");
            	}
            	sb.append(">");
            	sb.append(value);
            	sb.append("</a>");
        	}else{
        		sb.append("");
        	}
        }
        else if(type.equals("forumName")){
         	if(Validator.isEmpty(forum)&&idIs>0){
         		forum = ViewCoder.getForum(idIs);
        	}
         	if(!Validator.isEmpty(forum)){
         		sb.append(UrlUtils.forumUrl(forum,value,url,rel,property,request));
             	forum = null; //清理缓存
         	}else{
         		sb.append("");
         	}
        }
        else if(type.equals("basic")){
        	sb.append("<a");
        	if(!Validator.isEmpty(url)){
        		sb.append(" href=\"");
        		sb.append(url);
            	if(!Validator.isEmpty(param)){
            		sb.append("?");
            		sb.append(param);
            	}
            	sb.append("\" ");
        	}
        	if(!Validator.isEmpty(rel)){
        		sb.append(" target=\"");
        		sb.append(rel);
        		sb.append("\"");
        	}
        	if(!Validator.isEmpty(property)){
        		sb.append(property);
        	}
        	sb.append(">");
        	sb.append(value);
        	sb.append("</a>");
        }
        else if(type.equals("groupName")){
        	GroupView gv = null ;
        	if(object instanceof UserView){
        		UserView v = (UserView) object;
        		gv = v.getGroupView();
        	}else if(object instanceof GroupView){
        		gv = (GroupView) object;
        	}
    		if(!Validator.isEmpty(gv)){
    			sb.append(gv.getGroupName());
    		}
        }
        else if(type.equals("title")){
        	if(isDeleted){
    			sb.append("<font class=\"del\">");
    		}
        	sb.append("<a href=\"");
        	sb.append(url);

⌨️ 快捷键说明

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