동적 메뉴 생성 클래스
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}" />
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JSP| EL (Experession Language)텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.