Time of Update: 2018-12-07
這個Plugin的作用是在Struts應用程式啟動時進行hibernate的初始化操作,原文HibernatePlugIn for Struts,步驟很簡單:1、在struts-config.xml裡增加:<plug-in className="org.haree.struts.HibernatePlugIn"> <!-- 'path-to-config-file' is relative to the root of the class path. It
Time of Update: 2018-12-07
Hibernate真是受歡迎,有那麼多工具為它服務,XDoclet、MiddleGen、各種外掛程式。。。用XDoclet產生hbm.xml就是在.java檔案裡寫入一些中繼資料,XDoclet會從這些資料以及類本身得到足夠的資訊來產生目標檔案。當然,除了用於hibernate,XDoclet還可以用於web、ejb等等很多用途。XDoclet要從sourceforge上下載,包含了很多jar包、文檔和例子,我覺得文檔做得還是不錯的,查起來比較方便。要使用XDoclet,一般要通過ant來完成,
Time of Update: 2018-12-07
開發jsp/servlet最經常遇到的應用其中之一就是在頁面上顯示一個條目列表(例如使用者列表、文章列表、商品列表等等),然後使用者才好在瀏覽的基礎上選擇對某一個條目進行操作。現在就說一下怎樣用struts實現這個功能。一般來說,用struts開發的應用是不應該直接存取.jsp檔案的,而是由action轉寄請求,jsp只是顯示action傳來的資料用。所以即使這樣簡單的一個應用,也還是需要一個action的。1、還是使用easy struts的嚮導,在菜單裡選擇File->New->
Time of Update: 2018-12-07
使用struts的一個好處就是,很多傳統jsp/servlet開發中十分瑣碎的事情都有正常化的方法來處理了。例如表單驗證、錯誤提示、HTML字元過濾等等。今天簡單說一說在form類裡進行驗證。在上一篇文章裡的LogonForm.java裡加入下面這個方法:(import org.apache.struts.action.ActionError;import org.apache.struts.action.ActionErrors;) public ActionErrors
Time of Update: 2018-12-07
GMF能根據.gmftool裡定義的工具項產生一個預設的palette(在產生的XXXPaletteFactory類裡實現,目前沒有利用GMF擴充點),同時GMF
Time of Update: 2018-12-07
通過org.eclipse.gmf.runtime.diagram.ui.editpolicyProviders擴充點可以給GMF應用裡的editpart增加所需要的editpolicy,通過editpolicy返回的command,就可以自由的控制editpart的行為。順便說一句,GMF
Time of Update: 2018-12-07
Debian3.1的testing版本,gnome版本2.10.2,小企鵝IME(fcitx)版本3.1.1-1。進行過一次debian升級(從stable升級到testing)以後就出現了這個問題:如果在一個視窗裡輸入過漢字,按Alt-Tab就無法切換到其它視窗(有視窗列表出來但鬆開後不會讓那個窗口變為當前視窗),而輸入英文就不會這樣。用滑鼠是可以正常切換的,很奇怪的現象而且影響正常使用,有人遇到過嗎,該怎樣解決呢?
Time of Update: 2018-12-07
如果在介面上有一個大文字框,一般我們會指定它的GridData為GridData.FILL_BOTH,這樣在視窗改變大小時它的大小會隨著變化。但在同一個GridLayout裡,如果有多個這樣的文字框,一定要注意它們的GridData中的grabExcessHorizontalSpace屬性,該屬性指出當一行中所有儲存格的大小(寬/高)還不足以填充父控制項時,是否增大其尺寸。舉一個具體的例子,有兩行控制項,父控制項的Layout定義為new
Time of Update: 2018-12-07
Eclipse鼓勵將不同的功能模組劃分為獨立的項目存在,這樣不但結構清晰,組織起來還非常靈活,因為我們可以用feature對這些項目進行不同的組合,輸出後得到具有不同功能的產品。不過這樣一來Package Explorer裡的項目會以更快的速度增加,當你面對幾十上百個項目時,工作效率必然大打折扣。幸好Eclipse提供了工作集(Working Set)的功能,它可以用來劃分這些項目。在Package Explorer視圖的下拉式功能表裡選擇Show->Working
Time of Update: 2018-12-07
今天遇到一個問題,就是要在一個Eclipse外掛程式裡顯示JFreeChart的圖形,因為後者是基於Java2D的,要把圖形顯示在SWT應用程式裡需要利用SWT-AWT橋接器來實現,雖說橋接的方式多半會伴隨著效能下降,但總歸是一個解決方案。代碼並不複雜,以下是一個片斷:public void createPartControl(Composite parent) { parent.setLayout(new FillLayout(SWT.VERTICAL)); Composite d
Time of Update: 2018-12-07
終於買了一個掌上型電腦,我又開始關注Palm開發了。Palm上雖然可以安裝Java虛擬機器,但據我所知絕大多數使用者受裡的Palm並沒有安裝,讓他們為了用你的一個小軟體而裝虛擬機器不太現實,因此只能用C/C++了。大學裡學的C語言一直沒有實際應用過,所以經過這麼多年也和沒學差不多,最近通過看wj給我的書,對C語言又有了重新的認識。不過C語言是面向過程的,我在Java裡積累的經驗似乎幫不上什麼忙,邊走邊看吧。我在“Palm開發”這個分類裡記錄學習過程,這是第一篇,先介紹一下PODS的使用方法。如果
Time of Update: 2018-12-07
有些時候需要在應用程式裡隱藏Resource Navigator,用程式控制而非雙擊滑鼠開啟編輯器。一個方法是讓程式在目標workspace裡建立一個project和需要的檔案,使用者不知道它們的存在:IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();IProject project = root.getProject(".my");if (!project.exists()) { try {
Time of Update: 2018-12-07
用過EMF的人想必都對它的代碼產生功能印象深刻吧,有沒有想過這是怎樣實現的呢?代碼產生一般是通過寫好的模板,在使用者輸入一些限制條件後,由程式把這兩者結合起來得到需要的代碼。EMF也是這樣,它內建了一些模板(放在 org.eclipse.emf.codegen.ecore裡),我們通過Java Interface或XML Schema檔案建立ecore模型後(這一步由org.eclipse.emf.codegen.ui支援),外掛程式
Time of Update: 2018-12-07
除了普通的類(介面)以外,在類圖裡可以定義一些特殊的元素,比較常見的是枚舉類型、自訂類型,它們對於一個完整可用的模型也是必不可 少的,這篇文章主要介紹EMF裡它們的使用方法。另外,由於EMF對Map的支援比較特別,所以在這裡也簡要介紹一下Map類型的定義方法。枚舉類型繼續前面文章的 例子,現在要為產品增加一個評分屬性,評分值可以是好中差之一,像這樣屬性值只能是有限幾個值之一的屬性就應該定義為枚舉類型
Time of Update: 2018-12-07
前兩天建的CVS庫看來是有點問題,同步時經常提示錯誤,然後就只能從庫裡刪除相關檔案重新提交。不知道是不是這個版本比較不穩定(以前看過文章說新版的CVSNT有什麼什麼問題來著)。項目估計涉及30-40個對象,每個對象的屬性還比較多,大約8-12個。使用拼音還是英文成了問題。經過今天的討論,暫時決定使用英文,還需要和老師確認一下。Easy Struts 0.64看來還是有一些bug,連ant運行時都提示找不到easy struts的某個類,這都哪跟哪啊?!改天還是要下載一個easy struts 0
Time of Update: 2018-12-07
使用純粹的SWT可以實現在儲存格中編輯(In place edit)的功能,代碼見這個例子,這裡要說的是利用jface完成差不多的工作:使用者單擊儲存格,出現一個下拉式功能表,使用者通過選擇來改變儲存格所代表的該行對象的屬性。對org.eclipse.jface.viewers.TableViewer.TableViewer的介紹這裡就不贅述了,一般我們都是像下面這樣定義TableViewer的:TableViewer viewer = new TableViewer(...); viewer.
Time of Update: 2018-12-07
一個Web應用程式,在WTP裡無法完成web services嚮導,手工配置axis後訪問http://localhost:8080/myapp/servlet/AxisServlet時提示如下錯誤:org.apache.axis.InternalException: org.apache.axis.ConfigurationException: org.apache.axis.deployment.wsdd.WSDDException: Must include type attribute
Time of Update: 2018-12-07
畢業設計的內容是Web應用程式的代碼產生器,因為接觸emf有一段時間了,我覺得用emf完全可以很方便的實現這個程式。這是更全面瞭解emf特別是codegen部分的一個好機會。這個文章將記錄這個過程的點滴,所以會比較瑣碎,也許這些文字能被用在畢業論文裡(不希望論文裡都是google來的東西)。我發現cnblogs的文章被修改後在rss裡會重新出現,所以訂閱我的blog的讀者可能要經常被“騷擾”了:P為了方便起見,我給這個代碼產生器起了一個名字叫做“StarGen”,完全是一個代號,不包含任何意義。
Time of Update: 2018-12-07
折騰半個月了,這個問題一直沒有得到解決。我有兩個web應用,它們使用同一個資料庫,通過hibernate串連。應用A向資料庫裡插入、修改和刪除資料,應用B讀取資料展現給使用者。在Mysql裡使用一切正常,現在決定使用DB2資料庫,理論上講只要在DB2裡建一個空資料庫,然後修改hibernate.properties就可以了。現在的問題是,如果只讓AB之一串連DB2沒有問題,只要它們同時連DB2,應用伺服器(WAS
Time of Update: 2018-12-07
通常理解stateMask的作用是標誌事件發生時是否有Shift、Ctrl等鍵同步選取,但SWT裡絕大多數Control都不支援這個標誌,無論按下什麼鍵,事件對象裡的stateMask都是0(不信可以運行下面的代碼)。更奇怪的是這個問題已經被提出3年多還沒有解決,stateMask只對MenuItem有用,那要怎麼實現對Button的Ctrl+Click檢測呢?import org.eclipse.swt.SWT;import