?? articlenavigation.java
字號:
package com.v246;
public class ArticleNavigation
{
int x,a,b,c,d;//標記用變量
String url=null;//網站域名
FullClassDir fullDir=new FullClassDir();//指定ID的全路徑/Article/abc/dir
AquGetRows getRows=new AquGetRows();//用于得到記錄集的類
String rows[][]=null;//用于存儲getRows 返回的記錄集是個二維數組
java.sql.Connection conn=null;
Connections connTmp=new Connections();
StringBuffer okString=new StringBuffer(1024);//用于存儲最終字符串
public ArticleNavigation()//作必要的初始化
{
x=0;//只能執行一次stm_bp('p1',[1,4,0,0,2,3,6,7,100,'pr動作
a=0;//看看是不是弟一條一級分類欄目
b=1;//JS文件中用于區分上下級用地
c=0;//看看是滯是getString()方法第一次調用findChild()方法
d=0;//確保一級分類下面只有一個欄目時菜單樣式也是下拉式的,而不是右拉式的!標記型變量
getUrl();
okString.append("stm_bm(['uueoehr',400,'','/images/blank.gif',0,'','',0,0,0,0,0,1,0,0]);\n stm_bp('p0',[0,4,0,0,2,2,0,0,100,'',-2,'',-2,90,0,0,'#000000','transparent','',3,0,0,'#000000']);stm_ai('p0i0',[0,'|','','',-1,-1,0,'','_self','','','','',0,0,0,'','',0,0,0,0,1,'#f1f2ee',1,'#cccccc',1,'','',3,3,0,0,'#fffff7','#000000','#000000','#000000','9pt 宋體','9pt 宋體',0,0]);\n stm_aix('p0i1','p0i0',[0,'首頁','','',-1,-1,0,'"+url+"/index.html','_self','"+url+"/Index.html','','','',0,0,0,'','',0,0,0,0,1,'#f1f2ee',1,'#cccccc',1,'','',3,3,0,0,'#fffff7','#ff0000','#000000','#cc0000','9pt 宋體','9pt 宋體']);\n stm_aix('p0i2','p0i0',[0,'|','','',-1,-1,0,'','_self','','','','',0,0,0,'','',0,0,0,0,1,'#f1f2ee',1,'#cccccc',1,'','',3,3,0,0,'#fffff7','#000000','#000000','#000000','9pt 宋體','9pt 宋體',0,0]);");
}
protected void getUrl()
{
try
{
url=Aqu.getUrl(connTmp.getConnection(),"config","url");
}
catch(Exception e)
{
e.printStackTrace();
}
}
private void getOkString()
{
try
{
rows=getRows.getRows(connTmp.getConnection(),"class");//得到class表的記錄集
}
catch(Exception e)
{
e.printStackTrace();
}
for(int i=0;i<rows[0].length;i++)
{
// System.out.println(i);
if(rows[1][i].equals("0"))//查找根欄目,也就是一級分類
{
try
{
if(a==0&&rows[4][i].equals("true"))//如果是頭一條記錄的話,則不加|標志,如果前沿一條記錄就有下級欄目的話,就得加上stm_bp('p1',[1,4,0,0,2,3,6,7,100,'pr動作
{
okString.append("stm_aix('p0i"+rows[0][i]+"','p0i0',[0,'"+rows[2][i]+"','','',-1,-1,0,'"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','_self','"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','','','',0,0,0,'/images/arrow_r.gif','/images/arrow_w.gif',0,0,0,0,1,'#f1f2ee',1,'#cccccc',1,'','',3,3,0,0,'#fffff7','#ff0000','#000000','#cc0000','9pt 宋體','9pt 宋體']);\r"+"stm_bp('p"+b+"',[1,4,0,0,2,3,6,7,100,'progid:DXImageTransform.Microsoft.Fade(overlap=.5,enabled=0,Duration=0.43)',-2,'',-2,67,2,3,'#999999','#ffffff','',3,1,1,'#aca899']);\n");
x++;//確保只進行了一次stm_bp('p1',[1,4,0,0,2,3,6,7,100,'pr動作
//System.out.println("====================="+a);
}
else if(a==0&&rows[4][i].equals("false"))
{
okString.append("stm_aix('p0i"+rows[0][i]+"','p0i0',[0,'"+rows[2][i]+"','','',-1,-1,0,'"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','','','','','',0,0,0,'','',0,0,0,0,1,'#f1f2ee',1,'#cccccc',1,'','',3,3,0,0,'#fffff7','#ff0000','#000000','#cc0000','9pt 宋體','9pt 宋體']);\r");
}
else if(rows[4][i].equals("false"))//如果不是第一條記錄,則在春最后加|
{
okString.append("stm_aix('p0i2','p0i0',[0,'|','','',-1,-1,0,'','_self','','','','',0,0,0,'/images/arrow_r.gif','/images/arrow_w.gif',0,0,0,0,1,'#f1f2ee',1,'#cccccc',1,'','',3,3,0,0,'#fffff7','#000000','#000000','#000000','9pt 宋體','9pt 宋體',0,0]);\r"+"stm_aix('p0i"+rows[0][i]+"','p0i0',[0,'"+rows[2][i]+"','','',-1,-1,0,'"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','','','','','',0,0,0,'','',0,0,0,0,1,'#f1f2ee',1,'#cccccc',1,'','',3,3,0,0,'#fffff7','#ff0000','#000000','#cc0000','9pt 宋體','9pt 宋體']);\r");
}
else if(x==0&&rows[4][i].equals("true"))
{
okString.append("stm_aix('p0i2','p0i0',[0,'|','','',-1,-1,0,'','_self','','','','',0,0,0,'/images/arrow_r.gif','/images/arrow_w.gif',0,0,0,0,1,'#f1f2ee',1,'#cccccc',1,'','',3,3,0,0,'#fffff7','#000000','#000000','#000000','9pt 宋體','9pt 宋體',0,0]);\r"+"stm_aix('p0i"+rows[0][i]+"','p0i0',[0,'"+rows[2][i]+"','','',-1,-1,0,'"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','_self','"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','','','',0,0,0,'/images/arrow_r.gif','/images/arrow_w.gif',0,0,0,0,1,'#f1f2ee',1,'#cccccc',1,'','',3,3,0,0,'#fffff7','#ff0000','#000000','#cc0000','9pt 宋體','9pt 宋體']);\r"+"stm_bp('p"+b+"',[1,4,0,0,2,3,6,7,100,'progid:DXImageTransform.Microsoft.Fade(overlap=.5,enabled=0,Duration=0.43)',-2,'',-2,67,2,3,'#999999','#ffffff','',3,1,1,'#aca899']);\n");
x++;
}
if(i==rows[0].length-1)
{
okString.append("stm_aix('p0i2','p0i0',[0,'|','','',-1,-1,0,'','_self','','','','',0,0,0,'/images/arrow_r.gif','/images/arrow_w.gif',0,0,0,0,1,'#f1f2ee',1,'#cccccc',1,'','',3,3,0,0,'#fffff7','#000000','#000000','#000000','9pt 宋體','9pt 宋體',0,0]);\r");
}
a++;//a自加后,代表不是頭一條記錄
//System.out.println(a);
}
catch(Exception e)
{
e.printStackTrace();
}
if(rows[4][i].equals("true"))//如果該記錄有下級記錄的話
{
findChild(rows[0][i]);//對其下級記錄進行操作
c=1;//使C=1因為它現在以經沒有用了,避免重復添加記錄或添加錯誤記錄,
d=0;//使D==0因為后面還要用到
}
}
}
okString.append("stm_em();");//添加結束標志
}
public void findChild(String id)
{
for(int i=0;i<rows[0].length;i++)
{
if(rows[1][i].equals(id)&&rows[4][i].equals("false"))//如果當前記錄的父親ID正好是id的而該記錄又沒有下級記錄的話
{
int tmp=0;//標記型變量,因為本IF中只能執行一次okString的添加動作,執行多了會重復
try
{
for(int x=0;x<i;x++)//查找該記錄之前的記錄,看看該記錄有沒有同級記錄(兄弟記錄)
{
if(rows[1][x].equals(id)&&tmp==0)//如果有同級記錄,就不能添加(p2,p1)字樣
{
okString.append("stm_aix('p"+(b+1)+"i0','p0i0',[0,'"+rows[2][i]+"','','',-1,-1,0,'"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','_blank','"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','"+rows[2][i]+"','','',3,0,0,'','',0,0,0,0,1,'#f1f2ee',1,'#cccccc',0,'','',3,3,0,0,'#fffff7','#ff0000','#000000','#cc0000','9pt 宋體']);\r");
tmp++;
// System.out.println("8888888888888888888888888888888888888888888888"+rows[2][i]);
}
else if(d==0&&tmp==0&&x==i-1&&c!=0)//如果該一級分類下面只有一個欄目則[1,4,0,0,2,3,6]確保菜單樣式是下拉式地
{
okString.append("stm_bpx('p"+(b+1)+"','p"+b+"',[1,4,0,0,2,3,6]);"+"stm_aix('p"+(b+1)+"i0','p0i0',[0,'"+rows[2][i]+"','','',-1,-1,0,'"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','_blank','"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','"+rows[2][i]+"','','',3,0,0,'','',0,0,0,0,1,'#f1f2ee',1,'#cccccc',0,'','',3,3,0,0,'#fffff7','#ff0000','#000000','#cc0000','9pt 宋體']);\r");
b++;
d++;
}
else if(tmp==0&&x==i-1&&c!=0)//如果沒有查找到該記錄的同級記錄的話,就必須加上(p2,p1)字樣
{
okString.append("stm_bpx('p"+(b+1)+"','p"+b+"',[1,2,-2,-3,2,3,0]);"+"stm_aix('p"+(b+1)+"i0','p0i0',[0,'"+rows[2][i]+"','','',-1,-1,0,'"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','_blank','"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','"+rows[2][i]+"','','',3,0,0,'','',0,0,0,0,1,'#f1f2ee',1,'#cccccc',0,'','',3,3,0,0,'#fffff7','#ff0000','#000000','#cc0000','9pt 宋體']);\r");
b++;
}
else if(tmp==0&&x==i-1&&c==0)
{
okString.append("stm_aix('p"+(b+1)+"i0','p0i0',[0,'"+rows[2][i]+"','','',-1,-1,0,'"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','_blank','"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','"+rows[2][i]+"','','',3,0,0,'','',0,0,0,0,1,'#f1f2ee',1,'#cccccc',0,'','',3,3,0,0,'#fffff7','#ff0000','#000000','#cc0000','9pt 宋體']);\r");
tmp++;
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
else if(rows[1][i].equals(id)&&rows[4][i].equals("true"))//否則如果該記錄有下級(孩子)的話
{
int tmp=0;//標記型變量,因為在本IF中只能執行一次okString的添加動作,如果執行多了,就會重復
try
{
for(int x=0;x<i;x++)//查找該記錄前看看是否還有同級記錄(兄弟)
{
if(rows[1][x].equals(id)&&tmp==0)//如果有同級記錄的話就不能添加(p2,p1)字樣
{
okString.append("stm_aix('p"+(b+1)+"i0','p0i0',[0,'"+rows[2][i]+"','','',-1,-1,0,'"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','_blank','"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','"+rows[2][i]+"','','',6,0,0,'/images/arrow_r.gif','/images/arrow_w.gif',7,7,0,0,1,'#f1f2ee',1,'#cccccc',0,'','',3,3,0,0,'#fffff7','#ff0000','#000000','#cc0000','9pt 宋體']);\r");
tmp++;
}
else if(c==0&&x==i-1)//如果是getOkstring()的第一次調用本方法(findChild)(也就是該記錄是最靠近stm_bp('p1',[1,4,0,0,2 。。。。的)該記錄如果加上(p2,p1)字樣會倒至js文件不能被正確的執行
{
okString.append("stm_aix('p"+(b+1)+"i0','p0i0',[0,'"+rows[2][i]+"','','',-1,-1,0,'"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','_blank','"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','"+rows[2][i]+"','','',0,0,0,'/images/arrow_r.gif','/images/arrow_w.gif',7,7,0,0,1,'#f1f2ee',1,'#cccccc',0,'','',3,3,0,0,'#fffff7','#ff0000','#000000','#cc0000','9pt 宋體']);\r");
d++;//類為只有一個一級欄目時菜單樣式會自動為下拉式的所以d要++
}
else if(d==0&&tmp==0&&x==i-1)//確保該一級分類下面只有一個欄目時菜單樣式為下拉式的
{
okString.append("stm_bpx('p"+(b+1)+"','p"+b+"',[1,4,0,0,2,3,6]);"+"stm_aix('p"+(b+1)+"i0','p0i0',[0,'"+rows[2][i]+"','','',-1,-1,0,'"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','_blank','"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','"+rows[2][i]+"','','',3,0,0,'/images/arrow_r.gif','/images/arrow_w.gif',0,0,0,0,1,'#f1f2ee',1,'#cccccc',0,'','',3,3,0,0,'#fffff7','#ff0000','#000000','#cc0000','9pt 宋體']);\r");
b++;
d++;
}
else if(tmp==0&&x==i-1)//如果是最后一條記錄,而且tmp為0也就是沒找到同級記錄的話,就必須加上(p2,p1)字樣
{
okString.append("stm_bpx('p"+(b+1)+"','p"+b+"',[1,2,-2,-3,2,3,0]);"+"stm_aix('p"+(b+1)+"i0','p0i0',[0,'"+rows[2][i]+"','','',-1,-1,0,'"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','_blank','"+url+"/Article"+fullDir.getClassDir(Integer.parseInt(rows[0][i]),"/")+"/index.html','"+rows[2][i]+"','','',6,0,0,'/images/arrow_r.gif','/images/arrow_w.gif',7,7,0,0,1,'#f1f2ee',1,'#cccccc',0,'','',3,3,0,0,'#fffff7','#ff0000','#000000','#cc0000','9pt 宋體']);\r");
b++;
}
}
c=1;//避免由于C的值沒變,而使記錄重復,因為C的值一變就不是第一次執行本方法了
findChild(rows[0][i]);//進行遞歸遍歷所有欄目
}
catch(Exception e)
{
e.printStackTrace();
}
}
if(i>=rows[0].length-1)//如果以經行完了該次循環
{
okString.append("stm_ep();\r");//用于JS中返回上級菜單以便進行工作
}
}
}
public void write()
{
getOkString();
WriteHtml writeHtml=new WriteHtml();
writeHtml.save(okString.toString(),"/Article/js","ShowClass_Menu.js");//生成JS文件
}
public static void main(String []args)
{
ArticleNavigation navigation=new ArticleNavigation();
navigation.write();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -