| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
25 | 26 | 27 | 28 | 29 | 30 | 31 | |||
1 | 2 | 3 | 4 | 5 | 6 | 7 | |||
8 | 9 | 10 | 11 | 12 | 13 | 14 | |||
15 | 16 | 17 | 18 | 19 | 20 | 21 | |||
22 | 23 | 24 | 25 | 26 | 27 | 28 | |||
29 | 30 | 1 | 2 | 3 | 4 | 5 |
昨天聽到一個同事在說Eclipse老是反應好慢,常常出現內存不足的情況。
在網上查了一下關于這方法的東東,有的說在后面加參數,我原來試過,沒有發現有很大的效果,不過在網上看到一則說在Eclipse中查看JVM的內存使用情況的,覺的挺有意思的,其實我另一個Eclipse3.2的開發環境沒有設置任何的配置也可以查看同樣的效果,我就是不明白那是怎么出來的,還害的我在菜單中找了好多都沒有調用出來。按網上說的試著去設置了一下,成功了,看起來也不錯。
方法如下:
1.在eclipse根目錄下建立一個文件,文件名options,不要加后綴直接保存,文件內容org.eclipse.ui/perf/showHeapStatus=true
2.修改eclipse目錄下的eclipse.ini文件,在開始添加如下內容:
-debug
options
-vm
javaw.exe
重新啟動eclipse,就可以看到下方狀態條多了JVM的信息
XWork配置文件是以“xwork”命名的.xml文件,它必需放到類路徑(classPath)的根目錄, Web應用一般放在classes目錄中,它需要遵守DTD的規范(現在是xwork-1.0.dtd)。這個文件定義了我們的Action,Interceptor,Result的配置和相互之間的映射。下面我們看看用戶注冊的完整XWork配置文件:
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">
<xwork>
<include file="webwork-default.xml"/>
<package name="example" extends="webwork-default">
<action name="register" class="example.register.RegisterAction" >
<result name="success" type="dispatcher">
<param name="location">/register-result.jsp</param>
</result>
<interceptor-ref name="params"/>
</action>
<action name="registersupport" class="example.register.RegisterActionSupport" >
<result name="success" type="dispatcher">
<param name="location">/register-result.jsp</param>
</result>
<result name="input" type="dispatcher">
<param name="location">/registerSupport.jsp</param>
</result>
<interceptor-ref name="validationWorkflowStack"/>
</action>
</package>
</xwork>
Xwork:xwork配置文件的所有內容,都是定義在<xwork>標簽中,它的直接子標簽有<package>和<include>。
Package:我們的Action,Interceptor,Result都是在此標簽中定義。<package>標簽有一個必需的屬性“name”,它用來標識唯一的一個package。屬性“extends”是可選的,它用來繼承前面定義的一個或一個以上package配置信息,包括所有的interceptor、interceptor-stack和action的配置信息。注意,配置文件按文檔的順序,由上向下執行,因此,用“extends”引用的package必需在引用之前定義。屬性“sbstract”是可選的,它用來設置package為抽象的package,它可以被繼承同時它的Action配置信息在運行時將不可見。
屬性namespace也是可選的,它用來分隔不同package定義的action,讓這些action處于不同的命名空間(namespaces)。這樣,我們不同的package可以有相同的action命名,因為可以通過命名空間來區分。如果不指定namespace,默認的是空字符串。命名空間也可以被用在安全控制方面,它可以根據不同的命名空間指定不同的訪問權限。
屬 性 |
是否必需 |
描 述 |
name |
是 |
用來標識package的名稱 |
extends |
否 |
繼承它所擴展的package配置信息 |
namespace |
否 |
指定package的命名空間,默認是”” |
abstract |
否 |
聲明package是抽象的 |
Result-type:用來定義輸出結果類型的Class,它用簡單的名-值對來定義。當然,我們自己寫的輸出結果類型也必需在這里定義。例如:
<result-type name="dispatcher" class="com.opensymphony.webwork.dispatcher.ServletDispatcherResult" default="true"/>,default="true"表示如果在Action的result中不指定result-type,就使用這個默認的result-type。
Interceptors:它是一個簡單的<interceptors> <interceptors/>標簽,我們的interceptor和interceptor-stack都在此標簽內定義。
Interceptor:當然,就是用來定義我們的攔截器。它的定義非常簡單,名-值對的形式。例如:<interceptor name="timer" class="com.opensymphony.xwork.interceptor.TimerInterceptor"/>。在action中,可以通過<interceptor-ref />來直接引用前面定義了的攔截器。
Interceptor-stack:用來將上面定義的interceptor組織成堆棧的形式,這樣我們就可以創建一組標準的interceptor,讓它按照順序執行。在我們的Action中直接引用這個interceptor堆棧就可以了,不用逐個interceptor去引用。
例如:
<interceptor-stack name="validationWorkflowStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="validation"/>
<interceptor-ref name="workflow"/>
</interceptor-stack>
Interceptor Param:我們的interceptor是在ActionConfig級別被實例化和存儲的,也就是說一個Action引用的每個interceptor都會有相應的實例。這樣,我們在定義和引用interceptor的時候都可以為它設置相應的參數值。例如:
<interceptor name="test" class="com.opensymphony.xwork.TestInterceptor">
<param name="foo">expectedFoo</param>
</interceptor>
在Action或Interceptor-stack中引用時也可以設置參數,例如:
<interceptor-ref name="test">
<param name="expectedFoo">expectedFoo</param>
</interceptor-ref>
注意:在Action引用的時候,如果引用的是Interceptor-stack,則不允許設置參數,否則會報錯。
Global-results:它允許我們定義全局的輸出結果(global result),比如登陸頁面、操作錯誤處理頁面。只要繼承它所在的package,這些輸出結果都是可見的。
例如:
<global-results>
<result name="login" type="dispatcher">
<param name="location">/login.jsp</param>
</result>
<result name="error" type="dispatcher">
<param name="location">/error.jsp</param>
</result>
</global-results>
如果我們的Action執行完返回“login”,它將調用上面的這個輸出結果,將輸出派遣到根目錄下的login.jsp頁面。
Action:用來配置Action的名稱(name)和它對應的Class。我們將通過這個Action的名稱和它所在package的namespace去配置文件中取得這個Action的配置信息。它可以通過<param>來設置參數,Action在執行的時候會取得配置文件里設置的參數(通過攔截器StaticParametersInterceptor)。
Action可以配置一個或多個輸出結果(result)。一個輸出結果的名稱,對應于Action執行完成返回的字符串。<result>標簽的type屬性,對應我們前面定義過的result-type,說明reslut的類型。例如:
<action name="register" class="example.register.RegisterAction" >
<result name="success" type="dispatcher">
<param name="location">/register-result.jsp</param>
</result>
<interceptor-ref name="params"/>
</action>
當然,我們的Action用到的攔截器也是在這里配置的,通過<interceptor-ref>標簽,屬性“name”的值,對應前面定義的interceptor或interceptor-stack。如果Action中沒有用<interceptor-ref>標簽指定攔截器,它將使用默認的<default-interceptor-ref>標簽定義的攔截器。
Include:xwork..xml文件可以被分成好幾個不同的文件,xwork..xml通過<include>標簽引用被包含的文件,例如:<include file="webwork-default.xml"/>。被包含的文件必需是package標簽里的內容,我們看看<include>標簽在配置文件里的位置就知道了。如果要繼承被包含文件的package,我們必需將<include>標簽放在其上面,因為配置文件是按照由上而下的順序解析的。
---轉貼
今天在做通訊錄的功能模塊,因為要用數展現,在網上搜了一下有關于這方面的資料,現轉貼來看看。
dtree動態樹+Javascript右鍵菜單(一)
1、從網上下載dtree控件。(好多地方都有的哦:P)
2、在Jbuilder中新建Web應用,命名為TreeLearing
3、解壓縮dtree.rar包。
把dtree目錄拷貝至TreeLearing應用中。
dtree目錄下包括這些文件:example01.html 、 dtree.js 、 api.html 、 dtree.css 和img目錄
注意:除了api.html之外,其它的文件都是必須拷貝的。只有這個api.html是對dtree控件的函數介紹。
4、復制example01.html,并把粘貼后的文件重命名為Tree.jsp
:) (保留原來的文件,以備參考是個好習慣哦~~)
注意dtree目錄下的文件結構不要改變,否則樹就不會正常顯示
5、在Web應用中指定首頁為Tree.jsp頁面。
6、Tree.jsp中的代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<html>
<head>
<title>Destroydrop » Javascripts » Tree</title>
<link rel="StyleSheet" href="dtree.css" type="text/css" />
<script type="text/javascript" src="dtree.js"></script>
</head>
<body>
<h1><a href="/">Destroydrop</a> » <a href="/javascripts/">Javascripts</a> » <a href="/javascripts/tree/">Tree</a></h1>
<h2>Example</h2>
<div class="dtree">
<p><a href="javascript: d.openAll();">open all</a> | <a href="javascript: d.closeAll();">close all</a></p>
<script type="text/javascript">
<!--
d = new dTree('d');
d.add(0,-1,'My example tree');
d.add(1,0,'Node 1','example01.html');
d.add(2,0,'Node 2','example01.html');
d.add(3,1,'Node 1.1','example01.html');
d.add(4,0,'Node 3','example01.html');
d.add(5,3,'Node 1.1.1','example01.html');
d.add(6,5,'Node 1.1.1.1','example01.html');
d.add(7,0,'Node 4','example01.html');
d.add(8,1,'Node 1.2','example01.html');
d.add(9,0,'My Pictures','example01.html','Pictures I\'ve taken over the years','','','img/imgfolder.gif');
d.add(10,9,'The trip to Iceland','example01.html','Pictures of Gullfoss and Geysir');
d.add(11,9,'Mom\'s birthday','example01.html');
d.add(12,0,'Recycle Bin','example01.html','','','img/trash.gif');
document.write(d);
//-->
</script>
</div>
<p><a href="mailto:drop@destroydrop.com">©2002-2003 Geir Landrö</a></p>
</body>
</html>
7、刪除紫紅色部分的代碼,因為不需要哦。
8、注意看綠色和藍色部分的代碼,這才是真正為樹添加節點的部分。
d.add(0,-1,'My example tree');
這一句為樹添加了一個根節點,顯示名稱為'My example tree'
d.add(1,0,'Node 1','example01.html');
這一句在樹的根節點下面添加了一個子節點。(d.add()方法的參數具體含義可參見api.html文件)
常用的:
第一個參數,表示當前節點的ID
第二個參數,表示當前節點的父節點的ID
第三個參數,節點要顯示的文字
第四個參數,點擊該節點的超鏈接(注意也可以是某個servlet或是struts應用中的某個.do請求)
第五個參數,鼠標移至該節點時顯示的文字
第六個參數,指定點擊該節點時在哪個楨中打開超鏈接
……
9、運行應用程序。可以看到一棵漂亮的樹。
原貼地址http://minifishpingping.spaces.live.com/blog/cns!167be6972d4b3ac!139.entry
Dtree所引用的css
一:dtree.css
.dtree {//定義目錄樹節點的字體,字號,顏色
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #006600;
white-space: nowrap;
}
.dtree img {//定義選用節點圖標的樣式,位置
border: 0px;
vertical-align: middle;
}
.dtree a {//
color: #006600;
text-decoration: none;
}
.dtree a.node, .dtree a.nodeSel {
white-space: nowrap;//表格隨著文字自動伸展(如果未設置TD寬度,則noWrap屬性是起作用的;如果設置了TD寬度,則noWrap屬性是不起作用的。)
padding: 0px 0px 0px 0px;
}
.dtree a.node:hover, .dtree a.nodeSel:hover {
color: #006600;
text-decoration: none;
}
.dtree a.nodeSel {//節點選中后的節點背景顏色
background-color: #c0d2ec;
}
.dtree .clip {
overflow: hidden;
}
二:tree.css
body {SCROLLBAR-FACE-COLOR:#D2FFD2;
SCROLLBAR-HIGHLIGHT-COLOR: #8AA583;
SCROLLBAR-SHADOW-COLOR: #8AA583;
SCROLLBAR-3DLIGHT-COLOR: #ffffff;
SCROLLBAR-ARROW-COLOR: #8AA583;
SCROLLBAR-TRACK-COLOR: #E1FFE1;
SCROLLBAR-DARKSHADOW-COLOR: #ffffff;
background-attachment: fixed;
//scroll : 背景圖像是隨對象內容滾動
//fixed : 背景圖像固定
background-repeat: no-repeat;
//background-repeat : repeat | no-repeat | repeat-x | repeat-y
//repeat : 背景圖像在縱向和橫向上平鋪
//no-repeat : 背景圖像不平鋪
//repeat-x : 背景圖像在橫向上平鋪
//repeat-y : 背景圖像在縱向平鋪
background-color: EFF7F7;
}
Dtree目錄樹的總結
一:函數1:頁面中tree.add(id,pid,name,url,title,target,icon,iconOpen,open);參數說明:id :節點自身的idpid :節點的父節點的idname :節點顯示在頁面上的名稱url :節點的鏈接地址title :鼠標放在節點上所出現的提示信息target :節點鏈接所打開的目標frame(如框架目標mainFrame或是_blank,_self之類)icon :節點關閉時的顯示圖片的路徑iconOpen:節點打開時的顯示圖片的路徑open :布爾型,節點是否打開(默認為false)注:open項:頂級節點一般采用true,即pid是-1的節點2:dtree.js文件中約87-113行是一些默認圖片的路徑,注意要指對。二:頁面中的書寫1:默認值的書寫規則(從左至右,依次省略)即 tree.add(id,pid,name,url);后面5個參數可以省略2:有間隔時的默認值(如存在第6個參數,但第5個參數想用默認值)即 tree.add(id,pid,name,url,"",target);必須這樣寫其他 tree.add(id,pid,name,url,"","","","",true);3:樣式表(1):可以將dtree.css中的樣式附加到你的應用中的主css中,如a.css(2):也可以同時引用dtree.css與a.css兩個文件,但前提條件是兩個css文件中不能有重復的樣式<link href="/jingjindatabase/pub/css/a.css" rel="stylesheet" type="text/css" />
<link href="/jingjindatabase/pub/css/dtree.css" rel="stylesheet" type="text/css" />
4:頁面代碼書寫的位置是:一般寫在表格的td之中<script type="text/javascript" src="/myMobanGis/pub/js/dtree.js"></script>
<script type="text/javascript">
tree = new dTree('tree');
tree.add("1","-1","京津","","","","","",true);
tree.add("11","1","A","","","","","",true);
tree.add("110","11","A-1","content.jsp?moduleName=XXX","","mainFrame");
tree.add("111","11","A-2","javascript:void(0)","","鏈接在哪里顯示");
tree.add("112","11","A-3","javascript:void(0)","","mainFrame");
tree.add("113","11","A-4","/.jsp","","mainFrame");
tree.add("114","11","A-5","/.jsp","","mainFrame");
tree.add("115","11","A-6","/.jsp","","mainFrame");
tree.add("12","1","B","","","","","",true);
tree.add("121","12","B-1","javascript:調用本頁內的js函數","","mainFrame");
tree.add("122","12","B-2");tree.add("13","1","C","","","","","",true);
tree.add("131","13","C-1","javascript:void(0)","","mainFrame");
tree.add("132","13","C-2","javascript:void(0)","","mainFrame");
tree.add("133","13","C-3","javascript:void(0)","","mainFrame");tree.add("14","1","D","","","","","",true);
tree.add("141","14","D-1","javascript:void(0)","","mainFrame");
document.write(tree);
</script>
說明:這是靜態的代碼,動態的可用循環加入。
三:css文件的注解
1:dtree.css
.dtree {//定義目錄樹節點的字體,字號,顏色
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #006600;
white-space: nowrap;
}
.dtree img {//定義選用節點圖標的樣式,位置
border: 0px;
vertical-align: middle;
}
.dtree a {//
color: #006600;
text-decoration: none;
}
.dtree a.node, .dtree a.nodeSel {
white-space: nowrap;
padding: 0px 0px 0px 0px;
}
.dtree a.node:hover, .dtree a.nodeSel:hover {
color: #006600;
text-decoration: none;
}
.dtree a.nodeSel {
background-color: #c0d2ec;
}
.dtree .clip {
overflow: hidden;
}