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