동적 메뉴 생성 클래스

9357 단어 jspWebsun
import com.valuebean.UserBean;

public class TopicMenu extends TagSupport {
	private int topicId;
	private String authorName;
	public void setTopicId(int topicId){
		this.topicId=topicId;
	}
	public void setAuthorName(String authorName){
		this.authorName=authorName;
	}
	public int doStartTag() throws JspException {
		HttpServletRequest request=(HttpServletRequest)pageContext.getRequest();
		String boardstatus=(String)request.getAttribute("visitboardstatus");
		if("2".equals(boardstatus))			//              ,        
			getshowmenu();
		return SKIP_BODY;
	}
	private void getshowmenu(){
		HttpServletRequest request=(HttpServletRequest)pageContext.getRequest();
		HttpSession session=request.getSession();
		JspWriter jspwriter=pageContext.getOut();
		String contextPath=request.getContextPath();
		
		String menubar="";
		String space="  ";
		String menu1="<a href='"+contextPath+"/visit/attachment/c/uploadview?topicId="+topicId+"'>    </a>";
		String menu2="<a href='"+contextPath+"/visit/topic/c/modifyview?topicId="+topicId+"'>    </a>";
		String menu3="<a href='#replytop' onclick='showreplyface()'>      </a>";
		String menu4="<a href='"+contextPath+"/visit/topic/a/replyview?topicId="+topicId+"'>      </a>";
		String menu5="<a href='"+contextPath+"/visit/topic/a/replyview?topicId="+topicId+"&fromquote=topic'>    </a>";
		String menu6="<a href='"+contextPath+"/visit/topic/c/deleteview?topicId="+topicId+"'>    </a>";
		String menu7="<a href='"+contextPath+"/visit/topic/c/changestatusview?topicId="+topicId+"'>    </a>";
		String menu8="<a href='"+contextPath+"/visit/topic/c/changetypeview?topicId="+topicId+"'>    </a>";
		String menu9="<a href='"+contextPath+"/visit/topic/b/movefirst?topicId="+topicId+"&authorName="+authorName+"'>    </a>";
		String menu10="<a href='"+contextPath+"/visit/topic/c/moveview?topicId="+topicId+"'>    </a>";
		String menu11="<a href='"+contextPath+"/visit/topic/a/collecttopic?topicId="+topicId+"' target='_blank'>    </a>";
		String showmenu1="";
		String showmenu2="";

		String topicstatus=(String)request.getAttribute("visittopicstatus");
		
		boolean islogin=false;
		Object object=session.getAttribute("loginer");
		if((object!=null)&&(object instanceof UserBean))			//        
			islogin=true;
		else
			islogin=false;
		
		if(islogin){					//        ,             
			UserBean loginer=(UserBean)object;
			int groupId=loginer.getGroupId();					//          ID,            
			Integer visitboardId=(Integer)session.getAttribute("visitboard");			//         ID 
			Integer visitcategoryId=(Integer)session.getAttribute("visitcategory");		//         ID 
			boolean mark=false;									//true             ;false                   
			
			if(groupId>=3)													//                   
				mark=true;
			else if(groupId==2){											//            ,                  
				int[] assignCategoryId=loginer.getAssignCategoryId();					//           (ID )
				mark=isMyAble(visitcategoryId,assignCategoryId);						//                  
			}
			else if(groupId==1){											//             ,                   
				int[] assignBoardId=loginer.getAssignBoardId();
				mark=isMyAble(visitboardId,assignBoardId);
			}
			
			if(mark){							//             
				if("2".equals(topicstatus)){					//           ,      
					showmenu1=menu1+space+menu2+space+menu3+space+menu4+space+menu5+space+menu6;
					showmenu2=menu7+space+menu8+space+menu9+space+menu10+space+menu11;
				}
				else if("1".equals(topicstatus)){				//           。         ,          、    、    
					showmenu1=menu6;
					showmenu2=menu7+space+menu8+space+menu9+space+menu10+space+menu11;
				}
				else if("0".equals(topicstatus)){				//           。                  ,            、    、    、      、      
					showmenu1=menu1+space+menu2+space+menu6;
					showmenu2=menu7+space+menu10+space+menu11;
				}
			}
			else{								//            
				if("2".equals(topicstatus)){					//           
					showmenu1=menu3+space+menu4+space+menu5;
					showmenu2=menu9+space+menu11;
				}				
			}
		} 
		else{							//    ,     "      " "    "    
			if("2".equals(topicstatus))					//           
				showmenu1=menu4+space+menu5;
		}
		
		menubar+="<table border='0' width='100%' cellpadding='0' cellspacing='0' rules='rows'>";
		menubar+="<tr>";
		menubar+="<td width='50%'>"+showmenu1+"</td><td align='right'>"+showmenu2+"</td>";
		menubar+="</tr>";
		menubar+="</table>";

		try {
			jspwriter.write(menubar);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	private boolean isMyAble(Integer current,int[]assign){
		boolean mark=false;
		if(current!=null&&assign!=null&&assign.length!=0){
			for(int i=0;i<assign.length;i++){
				if(current.intValue()==assign[i]){
					mark=true;
					break;
				}
			}			
		}		
		return mark;
	}
}

TLD 설명 파일만 사용 가능
WEB-INF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
	<tlibversion>1.0</tlibversion>
	<jspversion>1.1</jspversion>
	<shortname>freeforum</shortname>
<!---        -->
	<uri>http://--------/tages/xmenu</uri>
	<tag>
		<name>visitTopMenu</name>
		<tagclass>com.toolsbean.VisitTopMenu</tagclass>
		<bodycontent>empty</bodycontent>
	</tag>
	<tag>
		<name>adminTopMenu1</name>
		<tagclass>com.toolsbean.AdminTopMenu1</tagclass>
		<bodycontent>empty</bodycontent>
	</tag>
	<tag>
		<name>adminTopMenu2</name>
		<tagclass>com.toolsbean.AdminTopMenu2</tagclass>
		<bodycontent>empty</bodycontent>
	</tag>
	<tag>
		<name>topicMenu</name>
		<tagclass>com.toolsbean.TopicMenu</tagclass>
		<bodycontent>empty</bodycontent>
		<attribute>
			<name>topicId</name>
			<required>true</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
		<attribute>
			<name>authorName</name>
			<required>false</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
	</tag>
	<tag>
		<name>replyMenu</name>
		<tagclass>com.toolsbean.ReplyMenu</tagclass>
		<bodycontent>empty</bodycontent>
		<attribute>
			<name>topicId</name>
			<required>false</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
		<attribute>
			<name>replyId</name>
			<required>true</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
	</tag>	
	<tag>
		<name>attachmentMenu</name>
		<tagclass>com.toolsbean.AttachmentMenu</tagclass>
		<bodycontent>empty</bodycontent>
		<attribute>
			<name>attachmentId</name>
			<required>false</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
		<attribute>
			<name>operate</name>
			<required>true</required>
			<rtexprvalue>false</rtexprvalue>
		</attribute>
	</tag>
</taglib>
<%@ tablib uri="http://--------/tages/xmenu" prefix="xmenu"%>
<xmenu:topicMenu topid="${topic.id}" authorName="${topic.author}" />

좋은 웹페이지 즐겨찾기