linktag.java

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

JAVA
538
字号
    		sb.append("\"");
        	if(!Validator.isEmpty(rel)){
        		sb.append(" target=\"");
        		sb.append(rel);
        		sb.append("\"");
        	}
        	String htmlvalue = StringHelper.htmlEncoder(value);
        	sb.append(" title=\"");
        	sb.append(htmlvalue);
    		sb.append("\">");
        	if(this.escapeUBB){
        		sb.append(value);
        	}else{
        		sb.append(htmlvalue);
        	}
        	sb.append("</a>");
        	if(isDeleted){
    			sb.append("</font>");
    		}
        }
        else if(type.equals("datetime")){
        	sb.append(OutPrint.isDateHtml(lvalue));
        }
        else if(type.equals("topicIcon")){
        	sb.append(ViewCoder.topicIcon(request,topic));
        }
        else if(type.equals("topicMenu")){
        	if(!Validator.isEmpty(topic)){
	        	value = ViewCoder.topicMenu(request,topic,idIs);
        	}else if(!Validator.isEmpty(reply)){
            	value = ViewCoder.topicMenu(request,reply,idIs);
        	}
        	sb.append(value);
        }
        else if(type.equals("topicMenus")){
        	if(!Validator.isEmpty(topic)){
	        	value = ViewCoder.topicMenus(request,topic); 
        	}else if(!Validator.isEmpty(reply)){
            	value = ViewCoder.topicMenus(request,reply);
        	}
        	sb.append(value);
        }
        else if(type.equals("txtUrl")){
        	sb.append("<a href=\"");
        	if(!Validator.isEmpty(topic)){
        		sb.append(UrlUtils.getUrl(UrlUtils.TOPIC_TXT, topic.getTopicId(), topic.getForumId(), request));
        		if(!Validator.isEmpty(property)){
        			sb.append("\" title=\"");
        			sb.append(property);
                	sb.append("\">");
        		}else{
        			sb.append("\">");
        		}
        	}
        	else if(!Validator.isEmpty(reply)){
        		sb.append(UrlUtils.getUrl(UrlUtils.TOPIC_TXT, reply.getTopicId(), reply.getForumId(), request));
        		if(!Validator.isEmpty(property)){
        			sb.append("\" title=\"");
        			sb.append(property);
                	sb.append("\">");
        		}else{
        			sb.append("\">");
        		}
        	}
        	sb.append(StringHelper.htmlEncoder(value));
        	sb.append("</a>");
        }
        else if(type.equals("replyPostUrl")){
        	this.initialize();
        	int forumId = 0;
        	int topicId = 0;
        	int replyId = 0;
        	if(!Validator.isEmpty(topic)){
        		forumId = topic.getForumId();
        		topicId = topic.getTopicId();
        	}
        	if(!Validator.isEmpty(reply)){
        		replyId = reply.getReplyId();
        	}
			sb.append("post.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(topicId);
			sb.append("&replyId=");
			sb.append(replyId);
			sb.append("&page=");
			sb.append(ParamUtils.getStringParameter(request,"page","1"));
			sb.append("&lpage=");
			sb.append(ParamUtils.getStringAuto(request, "lpage", "1"));
			sb.append("&act=");
			sb.append("addreply");
        }
        else if(type.equals("tree")){
        	ReplyView v =  (ReplyView)object;
        	sb.append(ViewCoder.treeHtml(v));
        }
        else if(type.equals("replys")){
        	if(object instanceof TopicView){
        		TopicView v = (TopicView)object;
        		if(!Validator.isEmpty(v)){
        			if(v.getReplys()>0){
        				sb.append(v.getReplys());
        			}else{
        				sb.append("<a href=\"post.jsp?forumId=");
        				sb.append(v.getForumId());
        				sb.append("&topicId=");
        				sb.append(v.getTopicId());
        				sb.append("&act=addreply\">沙发</a>");
        			}
        		}else{
            		sb.append("0");
            	}
        	}else{
        		sb.append("0");
        	}
        }
        else if(type.equals("replyList")){
        	if(topic==null){
        		List<ReplyView>list = (List<ReplyView>) object;
        		value = ViewCoder.findReplys(request,topic,list,null);
        	}else{
        		value = ViewCoder.findReplys(request,topic,null);
        	}
        	if(!Validator.isEmpty(value)){
	        	sb.append("<div class=\"tree left1\">");
	        	sb.append(value);
	        	sb.append("</div>");
        	}else{
        		sb.append("");
        	}
        }
        else if(type.equals("storey")){
        	sb.append(ViewCoder.getStorey(reply.getStorey()));
        	if(!Validator.isEmpty(topic)&&!Validator.isEmpty(reply)){
        		String st = sb.toString();
        		if(reply.getUserId()==0&&(reply.getUserIp().equals(topic.getUserIp()))){
        			sb.delete(0,sb.length());
        			sb.append("楼主 占领 ");
        			sb.append(st);
        		}
        		else if(reply.getUserId()==topic.getUserId()){
        			sb.delete(0,sb.length());
        			sb.append("楼主 占领 ");
        			sb.append(st);
        		}
        	}
        }
        else if(type.equals("forumStyle")){
        	sb.append(ViewCoder.styleMenu(request,UserSetUtils.FORUM_STYLE));
        }
        else if(type.equals("threadStyle")){
        	sb.append(ViewCoder.styleMenu(request,UserSetUtils.THREAD_STYLE));
        }
        else if(type.equals("forumLabel")){
        	sb.append(ViewCoder.forumLabel(request,forum));
        }
        else if(type.equals("favoriteForum")){
        	sb.append(ViewCoder.favoriteForum(request,forum));
        }
        else if(type.equals("online")){
        	if(this.getOnlineService().online(user)){
        		sb.append("<font class=\"red\">在线</font>");
        	}else{
        		sb.append("<font class=\"gray\">离线</font>");
        	}        	
        }
        else if(type.equals("parameter")){
        	sb.append(ParamUtils.getStringParameter(request,param,value));
        }
        else if(type.equals("nextOrPreviousUrl")){
        	sb.append("topic.do?forumId=");
        	sb.append(ParamUtils.getStringParameter(request,"forumId","0"));
        	sb.append("&topicId=");
        	sb.append(ParamUtils.getStringAttribute(request,"topicId","0"));
        	sb.append("&act=findNextOrPrevious&go=");
        	sb.append(param);
        }
        else if(type.equals("findNextOrPrevious")){
        	sb.append("<a href=\"topic.do?forumId=");
        	sb.append(ParamUtils.getStringParameter(request,"forumId","0"));
        	sb.append("&topicId=");
        	sb.append(ParamUtils.getStringAttribute(request,"topicId","0"));
        	sb.append("&act=findNextOrPrevious&go=");
        	sb.append(param);
        	sb.append("\">");
        	sb.append(value);
        	sb.append("</a>");
        }
        else if(type.equalsIgnoreCase("log_score")||type.equalsIgnoreCase("log_credit")||type.equalsIgnoreCase("log_money")){
        	sb.append(this.symbol(dvalue));
        }
        else if(type.equalsIgnoreCase("log_views")){
        	sb.append(this.symbol(ivalue));
        }
        else if(type.equalsIgnoreCase("log_url")){
        	ManageLogView log = (ManageLogView) object;
        	sb.append(UrlUtils.getUrl(log,request));
        }
        else if(type.equalsIgnoreCase("encoder")){
        	value = StringHelper.asciiToString(value);
        	value = StringHelper.htmlEncoder(value);
        	value = EnCoder.advancedTag(value);
        	sb.append(value);
        }
        outWrite(sb.toString());
        sb.delete(0, sb.length());
        object = null;
        topic = null;
        reply = null;
        user = null;
        value = null;
        property = null;
        return EVAL_PAGE;
	}

    public void outWrite(String s){
        try {
            pageContext.getOut().write(s);
        } catch (IOException e) {
            logger.error(e.toString());
        }
    }
    public void outWrite(StringBuffer s){
        try {
            pageContext.getOut().write(s.toString());
        } catch (IOException e) {
        	logger.error(e.toString());
        }
    }
    
	private OnlineService getOnlineService(){
		return ServiceWrapper.<OnlineService>getSingletonInstance(ServiceLocator.ONLINE);
	}

	public void setDvalue(double dvalue) {
		this.dvalue = dvalue;
	}

	public void setIvalue(int ivalue) {
		this.ivalue = ivalue;
	}
    
	private String symbol(double d){
		if(d<0){
			return String.valueOf(d);
		}else if(d==0){
			return "<span class=\"green\">+"+d+"</span>";
		}else{
			return "<span class=\"red\">+"+d+"</span>";
		}
	}

	private String symbol(int d){
		if(d<0){
			return String.valueOf(d);
		}else if(d==0){
			return "<span class=\"green\">+"+d+"</span>";
		}else{
			return "<span class=\"red\">+"+d+"</span>";
		}
	}
}

⌨️ 快捷键说明

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