用
Eclipse Visual Editor
開發(fā)
SWT GUI
?
?
IT
小混混
(haili.tian@gmail.com)
Nov.12, 2004?
?
Summary
1. 準備工作
2. 安裝
? ? 2.1. 安裝JRE
? ? 2.2. 安裝Eclipse及其它工具
3. 配置
4. 開發(fā)SWT GUI
?? ?4.1. 創(chuàng)建Java工程
?? ?4.2. 新建Visual Class
?? ?4.3. 完整VE環(huán)境
?? ?4.4. 簡單App
5. 運行SWT App
6. Conclusion
作者
?
?
?????? 本文講解如何用 Eclipse Visual Editor 開發(fā) Java GUI ,重點講解開發(fā) SWT GUI 時的配置。
?
Eclipse 的 Visual Editor Plug-in 需要用到 EMF(Eclipse Modeling Framework) 和 GEF(Graphical Editing Framework) ,當(dāng)然你還必須有 Eclipse SDK 和 Java JRE ,所以確保安裝之前你已經(jīng)下載了它們。
我機器上的版本是:
????????? Java JRE 1.4.1_02 & 1.5.0 ( 任選一版本 )
????????? Eclipse SDK v3.01
????????? emf-sdo-xsd-SDK v2.0.1
????????? GEF SDK v3.0.1
????????? VE SDK v1.0
JRE 到 Sun 的網(wǎng)站 (http://java.sun.com) 下載, Eclipse platform SDK 以及 Eclipse 的其它項目的安裝包到 Eclipse 網(wǎng)站 (http://www.eclipse.org/) 下載。
注意,版本問題, Eclipse 的任何項目的某一發(fā)行版本都要求某特定版本的 SDK 和其它工具,看它的 release notes 或 Readme 。
?
現(xiàn)在安裝 JRE 非常簡單,一路點擊 Next ,即可。
?????? 將 Eclipse SDK 包解壓到你的工作目錄。
然后把 EMF,GEF 和 VE 包里面 feathers 和 plugins 里面的內(nèi)容分別全部拷貝到 Eclipse 的 feathers 和 plugins 目錄里。
?
這樣啟動之后并不能直接看到與 VE 相關(guān)的 View 和 New 選項,還需要做如下配置。
?
????????? 點擊 Window 菜單,選擇 Customize Perspective… 。
????????? Submenus 欄目下選擇 New
????????? Shortcut Categories 下選擇 Java
????????? Shortcuts 中在 Visual Class 前劃勾(圖一)。
????????? Submenus 欄目下選擇 Show View
????????? Shortcut Categories 下選擇 Basic
?????????
Shortcuts
中在
Palette
前劃勾(圖二)。
?
圖一、選中
Visual Class
?
圖二、選中
Palette View
?
?????? Visual Editor 可以幫助開發(fā) AWT(Abstract Window Toolkit) 、 Swing 、 SWT(Standard Widget Toolkit) 以及其它的 GUI ,但是本文只是針對 SWT 。
創(chuàng)建 Java 工程 EclipseVE 。
為了應(yīng)用 SWT ,還必須包含 SWT 庫,方法如下。
????????? 在 Package Explore View 里面右擊 EclipseVE ,從彈出菜單中選中 Properties 。
????????? 在 Properties 窗口中,選中左邊的 Java Build Path ;
????????? 在 Properties 窗口中,選中右邊的 Libraries Tab ;
????????? 點擊 Add Library 按鈕;
????????? 選中 Standard Widget Toolkit(SWT) ,然后 Next , Finish ,即可。(如圖三所示)
?
圖三、加入
SWT
庫
?
創(chuàng)建 Visual Class 之前先新建一個 Package org.eclipse.ve.test 。
然后右擊 org.eclipse.ve.test ,再從彈出菜單中選中 New -> Visual Class ,出現(xiàn)圖四畫面。
?
圖四、創(chuàng)建
Visual Class
?
Name 中,填入 MyFirstVisualClass 。
Style 中選 SWT/Application 。
其它如圖中選擇或者填寫就行。
點擊 Finish 。
?
之后的界面如圖五所示。
?
圖五、初始界面
?
現(xiàn)在怎么沒有
WYSIWYG
(所見即所得)里的
Palette
?仔細看上圖的右邊,原來
Palette
初始是隱藏的。
單擊
?
現(xiàn)在的界面就如同圖六(一)或者圖六(二)所示。
?
圖六(一)、
VE
開發(fā)環(huán)境(一)
?
圖六(二)、
VE
開發(fā)環(huán)境(二)
?
為了直接對 Widget 的各種屬性操作,可以打開 Properties View ,那里可以直接操作。
?
打開 Properties View 方法:如果 Properties View 已經(jīng)打開,直接單擊它就行,否則從 Menu 打開,方法 Windows | Show View | Basic | Properties
?
現(xiàn)在的界面就如同圖六(三)了。
?
圖六(三)、
VE
完整
開發(fā)環(huán)境(三)
?
下面做一個簡單的 App
選中 Shell ,并在 Properties View 中將其 text 改為“ My First VE Application ”;
從 Palette 里選中一個 Label 放到 Shell 上,然后在 Properties View 中將其 text 改為“ Hello, world! ”
現(xiàn)在設(shè)計的結(jié)果就如同圖七。
?
圖七、第一個
VE
開發(fā)的程序
?
下面是
VE
自動生成的代碼
?
運行剛才的 SWT App 從 Run 菜單選中 Run… ;
彈出的窗口中, Configurations 中選擇 Java Application ,點擊 New 按鈕;
在右邊 Arguments Tab 中, VM arguments 寫入 -Djava.library.path=<Your SWT PATH>
(比如我的
<Your SWT PATH>
是:
F:\Eclipse-3.0.1\eclipse\plugins\org.eclipse.swt.win32_3.0.1\os\win32\x86
)
如圖八所示
點擊
Apply
;
點擊 Run 。
恭喜,呵呵,可愛的畫面出現(xiàn)了
?
?
自動生成的代碼還是很 Ugly ,不能完全代替人的勞動,不過其所見即所得的特性,可以很方便你布局那些 Widget 。
?
田海立( IT 小混混),系統(tǒng)分析師, 2004 年碩士畢業(yè)于南京大學(xué)(軟件架構(gòu)方向),主要興趣:嵌入式系統(tǒng)應(yīng)用架構(gòu), Java/Eclipse , Linux 技術(shù),攻讀碩士之前和目前都從事嵌入式系統(tǒng)研發(fā)。您可以通過 haili.tian@gmail.com 與他聯(lián)系,到 http://blog.csdn.net/thl789/ 或 http://spaces.msn.com/members/thl789/ 看他的文章。
?
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=179215
一、eclipse 無需插件使用tomcat調(diào)試
第一步、配置tomcat工程
兩種方法
1、將自己的工程放到tomcat/webapp下(這樣不好,這樣的整個工程就都的放到tomcat下,不好管理)
2、配置tomcat的server.xml(建議)
配置tomcat的conf/server.xml方法
在<host>下加入
? <Context path="/project1" docBase="D:\\vssclient\\project1\\web" debug="0"
???????????????? reloadable="true" crossContext="true"/>
? path指訪問的項目名稱即http://localhost:8080/project1
? docBase指web目錄的位置
? reloadable=true指tomcat可以動態(tài)加載修改的類或資源文件等(ClassLoader加載的資源)
?
? 啟動tomcat測試一下,看是否可用,然后進入第二步。
第二步、配置eclipse的debug
在eclipse中,選擇菜單Run->debug...進入設(shè)置頁面
New一個新的Java Application,然后設(shè)置相關(guān)的參數(shù)
1、ClassPath
?? 添加bootstrap.jar(TCOMAT_HOME\bin\下)
2、Main
?? Main Class 設(shè)置為 org.apache.catalina.startup.Bootstrap
3、Argument
?? 1)program argument設(shè)置為:start -config "D:\jakarta-tomcat-4.1.31\conf\server.xml"
?? 2)vm argument設(shè)置為:??
??-Dcatalina.home="D:\jakarta-tomcat-4.1.31"
??-Djava.endorsed.dirs="D:\jakarta-tomcat-4.1.31\common\endorsed"
??-Dcatalina.base="D:\jakarta-tomcat-4.1.31"
??-Djava.io.tmpdir="D:\jakarta-tomcat-4.1.31\temp"
?? (注意將D:\jakarta-tomcat-4.1.31該為自己實際的路徑)
4、啟動
?? 選擇工具欄的debug中新加的JavaApplication,啟動tomcat
?? 在java程序中設(shè)置斷點,在頁面訪問進入測試。
?
二、Eclipse 無需插件使用weblogic調(diào)試
第一步、設(shè)置weblogic工程
1、新建一個domain
2、設(shè)置domain下的config.xml
?? 添加應(yīng)用:
??? <Application Name="project1" Path="d:\vssclient\project1\web"
??????? StagingMode="nostage" TwoPhase="true">
??????? <WebAppComponent Name="project1" Targets="myserver" URI="/"/>
??? </Application>
??name指應(yīng)用的名稱
??? path指應(yīng)用的路徑
??? WebAppComponent的Name指訪問的名稱
? 啟動weblogic測試一下,看是否可以訪問
第二步、配置eclipse的debug
?在eclipse中,選擇菜單Run->debug...進入設(shè)置頁面
?New一個新的Java Application,然后設(shè)置相關(guān)的參數(shù)
1、ClassPath
?? 添加webservice.jar,weblogic.jar,ojdbc14.jar它們在$WEBLOGIC_HOME$/weblogic81/server/lib/下
2、Main
??? Main Class 設(shè)置為 weblogic.Server
3、Argument
? 1)program argument設(shè)置為
??"-Xms32m -Xmx200m -XX:MaxPermSize=128m -Dweblogic.Name=myserver -Dbea.home="e:/bea" -Dweblogic.management.username=weblogic -Dweblogic.management.password=11111111
??-Dweblogic.ProductionModeEnabled=false
??-Djava.security.policy=="E:/bea/weblogic81/server/lib/weblogic.policy"
??? (注意修改weblogic的用戶名和密碼還有路徑)
?? 2)vm argument 設(shè)置為
????? 具體的-D參數(shù)根據(jù)自己的需要可有可無
?? 3) 設(shè)置work directory
4、啟動
?? 選擇工具欄的debug中新加的JavaApplication,啟動tomcat
?? 在java程序中設(shè)置斷點,在頁面訪問進入測試。
相關(guān)軟件版本
1.tomcat 4.1
2.eclipse 3.1
3.weblogic 8.1
?haha? 2006-3-28
?webjlwang at Gmail dot Com
原文地址:http://m.tkk7.com/webjlwang/archive/2006/03/28/37759.html
2? lomboz J2EE插件,開發(fā)JSP,EJB
http://forge.objectweb.org/projects/lomboz
3? MyEclipse J2EE開發(fā)插件,支持SERVLET/JSP/EJB/數(shù)據(jù)庫操縱等
http://www.myeclipseide.com
4? Properties Editor? 編輯java的屬性文件,并可以自動存盤為Unicode格式
http://propedit.sourceforge.jp/index_en.html
5? Colorer Take? 為上百種類型的文件按語法著色
http://colorer.sourceforge.net/
6? XMLBuddy 編輯xml文件
http://www.xmlbuddy.com
7? Code Folding? 加入多種代碼折疊功能(比eclipse自帶的更多)
http://www.coffee-bytes.com/servlet/PlatformSupport
8? Easy Explorer? 從eclipse中訪問選定文件、目錄所在的文件夾
http://easystruts.sourceforge.net/
9? Fat Jar 打包插件,可以方便的完成各種打包任務(wù),可以包含外部的包等
http://fjep.sourceforge.net/
10? RegEx Test 測試正則表達式
http://brosinski.com/stephan/archives/000028.php
11? JasperAssistant 報表插件(要錢的哦~)
http://www.jasperassistant.com/
12? Jigloo GUI Builder JAVA的GUI編輯插件
http://cloudgarden.com/jigloo/
13? Profiler 性能跟蹤、測量工具,能跟蹤、測量B/S程序
http://sourceforge.net/projects/eclipsecolorer/
14? AdvanQas 提供對if/else等條件語句的提示和快捷幫助(自動更改結(jié)構(gòu)等)
http://eclipsecolorer.sourceforge.net/advanqas/index.html
15? Log4E Log4j插件,提供各種和Log4j相關(guān)的任務(wù),如為方法、類添加一個logger等
http://log4e.jayefem.de/index.php/Main_Page
16? VSSPlugin VSS插件
http://sourceforge.net/projects/vssplugin
17? Implementors 提供跳轉(zhuǎn)到一個方法的實現(xiàn)類,而不是接口的功能(實用!)
http://eclipse-tools.sourceforge.net/implementors/
18? Call Hierarchy 顯示一個方法的調(diào)用層次(被哪些方法調(diào),調(diào)了哪些方法)
http://eclipse-tools.sourceforge.net/call-hierarchy/index.html
19? EclipseTidy 檢查和格式化HTML/XML文件
http://eclipsetidy.sourceforge.net/
20? Checkclipse 檢查代碼的風(fēng)格、寫法是否符合規(guī)范
http://www.mvmsoft.de/content/plugins/checkclipse/checkclipse.htm
21? Hibernate Synchronizer Hibernate插件,自動映射等
http://www.binamics.com/hibernatesync/
22? VeloEclipse? Velocity插件
http://propsorter.sourceforge.net/?
?
23? EditorList 方便的列出所有打開的Editor
http://editorlist.sourceforge.net/?
?
24? MemoryManager 內(nèi)存占用率的監(jiān)視
http://cloudgarden.com/memorymanager/?
?
25? swt-designer java的GUI插件
http://www.swt-designer.com/
?
26? TomcatPlugin 支持Tomcat插件
http://www.sysdeo.com/eclipse/tomcatPlugin.html
?
27? XML Viewer
http://tabaquismo.freehosting.net/ignacio/eclipse/xmlview/index.html
?
28? quantum 數(shù)據(jù)庫插件
http://quantum.sourceforge.net/
?
29? Dbedit 數(shù)據(jù)庫插件
http://sourceforge.net/projects/dbedit
?
30? clay.core 可視化的數(shù)據(jù)庫插件
http://www.azzurri.jp/en/software/index.jsp
http://www.azzurri.jp/eclipse/plugins
?
31? hiberclipse hibernate插件
http://hiberclipse.sourceforge.net
http://www.binamics.com/hibernatesync
?
32? struts-console Struts插件
http://www.jamesholmes.com/struts/console/
?
33? easystruts Struts插件
http://easystruts.sourceforge.net?
?
34? veloedit Velocity插件
http://veloedit.sourceforge.net/
?
35? jalopy 代碼整理插件
http://jalopy.sourceforge.net/
?
36? JDepend 包關(guān)系分析
http://andrei.gmxhome.de/jdepend4eclipse/links.html
?
37? Spring IDE Spring插件
http://springide-eclip.sourceforge.net/updatesite/
?
38? doclipse 可以產(chǎn)生xdoclet 的代碼提示
http://beust.com/doclipse/
39? SQLExplorer,在Eclipse 中連接各種數(shù)據(jù)庫進行操作使用
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=124&threadID=31124
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=487395
??????備注:JBoss推出的Eclipse IDE開發(fā)工具越來越強大,功能走向齊全,比較成熟完備,只需要JBoss的Eclipse IDE就可以,不必需要Lomboz了。JBoss Eclipse IDE主要支持J2EE的WEB和EJB開發(fā),實則提供ant和xdoclet自動提示等方便功能,還提供Hibernate ,EJB 3.0 ,JBoss AOP等開發(fā),內(nèi)置Jsp編輯器;可實現(xiàn)J2EE模塊打包和設(shè)定部署,結(jié)合JBoss服務(wù)器進行調(diào)試等。當(dāng)然版本要合適。
????????安裝完成后,參考JBoss的開發(fā)指南一步步操作即可:
?????? ?http://docs.jboss.com/jbosside/tutorial/build/en/html/
作者:baggio785
來源:http://blog.csdn.net/baggio785
原文地址:http://blog.csdn.net/baggio785/archive/2006/03/10/620579.aspx(轉(zhuǎn)載請注明出處)
日期:2006-3-9
關(guān)鍵詞:Eclipse,MyEclipse,Struts,Java
創(chuàng)建消息資源文件
視圖組件將使用標簽來輸出文本內(nèi)容,這些內(nèi)容來自于Resource Bundle。Resource Bundle對應(yīng)消息資源文件。
代碼清單二(ApplicationResources.properties)
# 這里是注釋 logon.username.error = 请输入用户名! logon.userpassword.error = 请输入密码! logon.badusername.error = 用户名不能为admin! logon.baduserpassword.error = 密码不能为123456! logon.success = 欢迎您登录! |
為了實現(xiàn)國際化,消息資源文件中的漢字采用的是UTF-8編碼。查看如何實現(xiàn)漢字轉(zhuǎn)化為UTF-8。
創(chuàng)建JSP文件
logon.jsp(所在路徑為/form/)接收用戶輸入的用戶名和密碼,并顯示表單驗證失敗的錯誤信息。success.jsp顯示登錄成功的信息。
JSP文件全部使用客戶化標簽,無JAVA代碼,輸入的文本內(nèi)容完全由標簽提供。
代碼清單三(logon.jsp)
<%@ page contentType="text/html;charset=UTF-8" language="java"%> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
<html> <head> <!--title使用客戶化標簽,文本內(nèi)容對應(yīng)的是消息資源文件中l(wèi)ogon.page.title的值--> <title><bean:message key="logon.page.title"/></title> </head> <body> <html:form action="/logon" method="POST"> 用户名:<html:text property="username"/><html:errors property="username"/><br/> 密 码:<html:password property="userpassword"/><html:errors property="userpassword"/><br/> <html:submit value="登录"/><html:reset value="取消"/> </html:form> </body> </html> |
代碼清單四(success.jsp)
<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%> <html:html lang="true"> <head> <html:base /> <title>success.jsp</title> </head>
<body> <logic:present name="savelogon" scope="request"> <bean:write name="savelogon" property="username"/> <bean:message key="logon.success"/> </logic:present> </body> </html:html> |
創(chuàng)建ActionForm Bean組件logonFrom
用戶提交HTML表單后,Struts框架會自動把表單數(shù)據(jù)封裝到ActionForm Bean(本例是logonForm)中。ActionForm Bean的屬性必須與HTML表單的字段一一對應(yīng)。ActionForm Bean會對表單數(shù)據(jù)進行驗證,并提供將HTML表單的字段值重置為默認值的方法(等同于HTML中Form表單的Reset)。
代碼清單五(logonFrom.java)
package com.mystruts.struts.form; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionErrors; /** // --------------------------------------------------------- Instance Variables /** userpassword property */ /** username property */ // --------------------------------------------------------- Methods /**
//如果用戶名驗證失敗,將ActionMessage對象保存到ActionErrors對象errors中。logon.username.error對應(yīng)消息資源文件中的logon.username.error的值。
//返回ActionErrors對象errors,Struts框架會把errors保存在request范圍內(nèi),并將請求轉(zhuǎn)發(fā)到視圖組件logon.jsp中,通過<html:errors/>來顯示錯誤信息 /** // TODO Auto-generated method stub /** /** /** /** } |
創(chuàng)建控制器Action組件logonAction
logonAction對表單數(shù)據(jù)進行業(yè)務(wù)邏輯驗證。
代碼清單六(logonAction.java)
package com.mystruts.struts.action; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.Action; import com.mystruts.struts.SaveLogon; /** // --------------------------------------------------------- Instance Variables // --------------------------------------------------------- Methods /** //獲得表單數(shù)據(jù)中的username //獲得表單數(shù)據(jù)中的userpassword //定義非法用戶名 //定義非法密碼
if(badusername.equals(username)){ //如果用戶名驗證失敗,將ActionMessage對象保存到ActionMessages對象errors中。logon.badusername.error對應(yīng)消息資源文件中的logon.badusername.error的值。 //保存ActionMessages對象errors到request范圍。 //返回ActionForward對象,Struts框架會把請求轉(zhuǎn)發(fā)到視圖組件logon.jsp中,通過<html:errors/>來顯示錯誤信息。 if(userpassword.equals(baduserpassword)){
//清除request范圍內(nèi)的ActionForm Bean,因為后面的請求已經(jīng)不需要了
} |
創(chuàng)建模型組件SaveLogon
本模型提供get/set方法,以及saveToDb方法。在例子中并未實現(xiàn)saveToDb方法。
代碼清單七(SaveLogon.java)
package com.mystruts.struts; /** private String username = null; public void setUsername(String username){ public String getUsername(){ public void setUserpassword(String userpassword){ public String getUserpassword(){ public void saveToDb(){ }
|
運行
如果用戶名和密碼為空,運行結(jié)果如圖十二、圖十三、圖十四所示。
(圖十二)
如果用戶名為admin,運行結(jié)果如圖十三
(圖十三)
如果通過驗證,運行結(jié)果如圖十四
(圖十四)
小結(jié)
1??? 為了降低偶合度,應(yīng)該建立一個存放常量的JAVA文件。例如logonAction.java中的String badusername = "admin",或者request.setAttribute("savelogon",sl)的第一個參數(shù)。
2??? 要實現(xiàn)Struts的國際化,支持多國語言,編碼方式一定要為UTF-8。
3??? 在配置Action時,見圖九,如果選取redirect,則在struts-config.xml中的action元素會多一個屬性,redirect="true"。運行的結(jié)果是success.jsp中無法獲得request范圍內(nèi)的savelogon對象。
?
手把手教你在Eclipse中配置開發(fā)Struts(一)
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=620579
作者:baggio785
來源:http://blog.csdn.net/baggio785
原文地址:http://blog.csdn.net/baggio785/archive/2006/03/10/620535.aspx(轉(zhuǎn)載請注明出處)
日期:2006-3-9
關(guān)鍵詞:Eclipse,MyEclipse,Struts,Java
前言
本文根據(jù)實例詳細介紹了如果在Eclipse中配置并開發(fā)Struts。此前在網(wǎng)上也看到過不少此類文章,而且還是有不少網(wǎng)友問此類問題。所以想根據(jù)自己的實際經(jīng)驗,并結(jié)合例子寫一篇詳細的文章,一個是方便大家,再一個也是檢驗一下自己的知識。
本文是偶的一些拙見,有不正確的地方請大家多多評論指正。
開發(fā)環(huán)境
JDK1_4_03,點擊下載
tomcat5.0.28,點擊下載
Eclipse3.1.2,點擊下載;下載中文包,中文包是3.1.1,但是也適用3.1.2
MyEcilpse4.1,點擊下載MyEcilpse4.1及破解補丁
TomcatPlugin插件,點擊下載TomcatPlugin插件
更多Eclipse插件下載,點擊進入
需求
本文所要結(jié)合的Struts應(yīng)用實例為用戶登錄(logon),用戶登錄(logon)的需求為:
1??接收用戶名和密碼,跳轉(zhuǎn)到成功頁面,并提示“<username>歡迎您登錄!”。
2??如果用戶名為空就提交表單,則提示“請輸入用戶名!”。
3??如果密碼為空就提交表單,則提示“請輸入密碼!”。
4??如果輸入非法用戶名,則提示“請輸入正確的用戶名!”。
5??通過模型組件,保存登錄信息。
登錄應(yīng)用實例的框架介紹
用戶登錄(logon)應(yīng)用由以下模塊組成:
1??模型(M):模型為一個JAVABEAN組件-SaveLogon,包含username(用戶名)和userpassword(密碼)兩個屬性,提供讀取和設(shè)置屬性的方法get/set,以及保存登錄信息的方法saveToDb()。saveToDb的任務(wù)是把登錄信息保存到持久化存儲系統(tǒng)(例如數(shù)據(jù)庫)。
2??視圖(V):視圖包括兩個JSP文件,以及一個ActionForm Bean-logonForm。JSP文件分別為:logon.jsp、success.jsp。logon.jsp負責(zé)接受用戶輸入的用戶名和密碼以及顯示出錯信息,success.jsp負責(zé)顯示登錄成功信息。
3??控制器(C):控制器為Action類logonAction。對數(shù)據(jù)進行業(yè)務(wù)邏輯驗證、調(diào)用模型組件保存登錄信息、選擇視圖組件返回給用戶。
Struts的工作機制
用戶在視圖組件(logon.jsp)中輸入用戶名和密碼并提交HTML表單,Struts框架會先讀取WEB.XML中關(guān)于servlet的配置,然后自動將表單數(shù)據(jù)封裝到ActionForm Bean中,在本例中是logonForm。logonForm會對提交的數(shù)據(jù)進行數(shù)據(jù)合法性驗證(例如最短長度、是否包含非法字符等)。如果ActionForm Bean驗證未通過,則logonForm返回ActionErrors對象,Struts框架會把ActionErrors對象保存在request范圍內(nèi),并把請求轉(zhuǎn)發(fā)到視圖組件,并在視圖組件中通過<html:errors/>標簽,展示request范圍內(nèi)的ActionErrors對象所包含的錯誤信息;如果通過ActionForm Bean驗證,則logonForm返回的ActionErrors對象為NULL,Struts框架將表單數(shù)據(jù)提交到控制器組件logonAction,控制器對表單數(shù)據(jù)進行業(yè)務(wù)邏輯驗證,如果logonAction驗證未通過,則創(chuàng)建包含錯誤信息的ActionMessages對象,并通過saveErrors方法把ActionMessages對象保存到request范圍內(nèi),并把請求轉(zhuǎn)發(fā)到視圖組件,并在視圖組件中通過<html:errors/>標簽,展示request范圍內(nèi)的ActionErrors對象所包含的錯誤信息;如果logonAction驗證通過,則Struts框架訪問模型組件,然后Struts框架會返回ActionFoward對象,并根據(jù)Struts-config.xml文件的配置情況,決定將ActionFoward對象包含的轉(zhuǎn)發(fā)信息傳遞到那一個視圖組件。
部署Struts框架
Struts的工作機制大家都有了一定的了解了,現(xiàn)在介紹如何在Eclipse中部署Struts框架。
本文的環(huán)境前文已經(jīng)提到,Eclipse以及其插件MyEclipse和TomcatPlugin的安裝本文不介紹,請參考其他文章。關(guān)于Eclipse的相關(guān)文章請看: http://blog.csdn.net/baggio785/category/148174.aspx 。
1??? 新建一個項目
1)? 選擇Java >> Tomcat Project,下一步,如圖一
(圖一)
2)填寫項目名稱,如果不采用項目所在目錄的缺省值,請修改,點擊完成。如圖二
(圖二)
2??? 創(chuàng)建Struts框架
1)??? 右鍵選擇項目 >> 新建 >> 其他 >> MyEclipse >> Web-Struts >> Struts 1.2 >> Struts 1.2 Form,Action & JSP。如圖三。如果這一步出現(xiàn)錯誤,本文不做描述,請參考我的另一邊文章-MyEclipse中創(chuàng)建Struts出現(xiàn)錯誤的解決辦法。
(圖三)
2)??? 配置Struts ActionForm??
因為本文的Struts應(yīng)用實例為用戶登錄,所以Use case選用logon。Superclass選擇如圖所示,其他默認。如圖四
(圖四)
接下來填寫Optional Details,輸入Form表單項,本例為用戶名(username)和密碼(userpassword)。點擊Add,輸入請參考圖五、圖六。
(圖五)
(圖六)
輸后完畢,Optional Details的Form Properties中會顯示。如圖七
(圖七)
Methods選項卡的設(shè)置我們采用默認設(shè)置,不去修改。
點擊JSP選項卡,將“Create JSP form”選項的勾選中,采用默認設(shè)置“/form/logon.jsp”。如圖八
(圖八)
3)??? 配置Struts Action
以上步驟完成了對Form的配置,下面配置Action。
在圖八中點擊下一步,采用默認即可。如圖九
(圖九)
Parameter和Methods選項也采用默認。
點擊Forwards選項卡,點擊Add,配置成功頁面信息。本文選取根目錄的success.jsp作為成功頁面,Name為logon_sc。如圖十
(圖十)
輸后完畢,Optional Details的Forwards中會顯示。如圖十一
(圖十一)
點擊完成。
Struts已經(jīng)配置完畢。看看Eclipse中,項目中多了一些東東,例如struts相關(guān)的jar,以及struts-config.xml和tld文件。struts-config.xml的代碼如下:
代碼清單一(struts-config.xml)
手把手教你在Eclipse中配置并開發(fā)Struts(二)
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=620535
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
<?xml version="1.0"?> <project name="Hello world" default="doc"> <!-- properies --> <property name="src.dir" value="src" /> <property name="report.dir" value="report" /> <property name="classes.dir" value="classes" /> <property name="lib.dir" value="lib" /> <property name="dist.dir" value="dist" /> <property name="doc.dir" value="doc"/> <!-- 定義classpath --> <path id="master-classpath"> <fileset file="${lib.dir}/*.jar" /> <pathelement path="${classes.dir}"/> </path> <!-- 初始化任務(wù) --> <target name="init"> </target> <!-- 編譯 --> <target name="compile" depends="init" description="compile the source files"> <mkdir dir="${classes.dir}"/> <javac srcdir="${src.dir}" destdir="${classes.dir}" target="1.4"> <classpath refid="master-classpath"/> </javac> </target> <!-- 測試 --> <target name="test" depends="compile" description="run junit test"> <mkdir dir="${report.dir}"/> <junit printsummary="on" haltonfailure="false" failureproperty="tests.failed" showoutput="true"> <classpath refid="master-classpath" /> <formatter type="plain"/> <batchtest todir="${report.dir}"> <fileset dir="${classes.dir}"> <include name="**/*Test.*"/> </fileset> </batchtest> </junit> <fail if="tests.failed"> *********************************************************** **** One or more tests failed! Check the output ... **** *********************************************************** </fail> </target> <!-- 打包成jar --> <target name="pack" depends="test" description="make .jar file"> <mkdir dir="${dist.dir}" /> <jar destfile="${dist.dir}/hello.jar" basedir="${classes.dir}"> <exclude name="**/*Test.*" /> <exclude name="**/Test*.*" /> </jar> </target> <!-- 輸出api文檔 --> <target name="doc" depends="pack" description="create api doc"> <mkdir dir="${doc.dir}" /> <javadoc destdir="${doc.dir}" author="true" version="true" use="true" windowtitle="Test API"> <packageset dir="${src.dir}" defaultexcludes="yes"> <include name="example/**" /> </packageset> <doctitle><![CDATA[<h1>Hello, test</h1>]]></doctitle> <bottom><![CDATA[<i>All Rights Reserved.</i>]]></bottom> <tag name="todo" scope="all" description="To do:" /> </javadoc> </target> </project> |
![]() |
![]() |
![]() |
Buildfile: F:\eclipse-projects\Hello\build.xml init: compile: [mkdir] Created dir: F:\eclipse-projects\Hello\classes [javac] Compiling 2 source files to F:\eclipse-projects\Hello\classes test: [mkdir] Created dir: F:\eclipse-projects\Hello\report [junit] Running example.HelloTest [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.02 sec pack: [mkdir] Created dir: F:\eclipse-projects\Hello\dist [jar] Building jar: F:\eclipse-projects\Hello\dist\hello.jar doc: [mkdir] Created dir: F:\eclipse-projects\Hello\doc [javadoc] Generating Javadoc [javadoc] Javadoc execution [javadoc] Loading source files for package example... [javadoc] Constructing Javadoc information... [javadoc] Standard Doclet version 1.4.2_04 [javadoc] Building tree for all the packages and classes... [javadoc] Building index for all the packages and classes... [javadoc] Building index for all classes... [javadoc] Generating F:\eclipse-projects\Hello\doc\stylesheet.css... [javadoc] Note: Custom tags that could override future standard tags: @todo. To avoid potential overrides, use at least one period character (.) in custom tag names. [javadoc] Note: Custom tags that were not seen: @todo BUILD SUCCESSFUL Total time: 11 seconds |
![]() |
![]() |
![]() |
![]() |
try { HelloTest test = new HelloTest(); // 建立測試類實例 test.setUp(); // 初始化測試環(huán)境 test.testAbs(); // 測試某個方法 test.tearDown(); // 清理資源 } catch… |
![]() |
![]() |