JBuilder開發Struts應用

  一、JBuilder 對於 Struts 之支持

  JBuilder 提供圖形使用者接口以簡化組件文件 struts-config.xml 之編輯與設定,此外,JBuilder 於 Object Gallery對話框內的 Web 頁次,提供四種精靈以簡化 Struts 開發流程。




   (1)Struts Converter Wizard:

  可指定 HTML 或一般 JSP 檔案自動產生使用 Struts Tag Libraries 之 JSP 檔案。

   (2)ActionForm Wizard:

  可導入JSP 檔案產生繼承自 ActionForm 之類,或自定義屬性 ( property ) 產生繼承自ActionForm 之類,類產生後可選擇是否自動完成 struts-config.xml 對應設定。

   (3)Action Wizard:

  可產生繼承自 Action 之類,設定搭配之 JSP 檔案、有效範圍 ( scope ) 並自動完成struts-config.xml 對應設定。

   (4)JSP from ActionForm Wizard:

  可由指定之 ActionForm 自動產生使用 Struts Tag Libraries之 JSP 檔案。

  除了上述精靈外,JBuilder 可協助開發人員自動設定web.xml 部署描述檔,以便 JSP 使用Struts 自定義 Tag Libraries 。

  
二、使用Jbuilder開發struts實例

  我們在這裏舉開發一個簡易的 Web 應用程序的例子來幫助大家瞭解Struts Framework。此 Web 應用程序允許使用者輸入兩獨立字符串,並將兩字符串連接後顯示於網頁。由於處理邏輯過於簡單,此實例中我們打算直接在扮演 Controller角色的 Action 中完成兩字符串連接動作,因此未使用扮演 Model 角色之
JavaBean 或類來處理字符串連接。

    步驟一: 添加Struts 1.1 類庫
  
    (1)將Struts 1.1 下載到 JBuilder的extras目錄中。如果沒有,去baidu搜索一下,沒有1.1沒法開發。

    (2)從菜單的Tool -> Configure Librarys 開始添加庫


      (3)修改庫的名字爲Struts1.1, Location爲 Jbuilder

 

     (4)講Struts的lib目錄下面的包全部添加到庫目錄中

     (5)按確定後的樣子

  (6)在選擇Framework,選擇其爲Struts,按OK後就配置好Struts 1.1 的庫了。




  
步驟二: 建立 Web 應用程序

  首先點擊選擇 JBuilder 集成開發環境主菜單 File | New Project… 建立一個名爲myTest 之項目。

  

   接着由菜單File | New… 激活Object Gallery 對話框,並點擊選擇Web 頁次中的 Web Application 精靈準備建立 Web 應用程序。



  Web Application 精靈會爲此 Web 應用程序準備妥產生WAR 所需之部署描述檔 web.xml,WAR 是 J2EE 規格中用以簡化 Web 程序部署複雜度之標準檔案格式。我們爲此 Web 應用程序命名爲 demo,往後將會在編譯此項目檔時產生名爲 demo.war 檔案以便於部署,在此 Web 應用程序中由於將會用到 Struts 之 Tag Libraries,因此在JSP/Servlet frameworks 中勾選Struts 1.1(是在第一步添加的類庫Struts 1.1,而不是自帶的1.0),同時JBuilder 會自動設定妥 web.xml。

  
步驟三 : 建立自定義之用戶界面

  自定義的用戶界面可以用兩種方式開發:(1)先創建ActionForm,再從ActionForm生成Jsp。(2)先創建Jsp,再從Jsp生成ActionForm。
   
    由於未準備妥可輸入兩字符串之 HTML 或JSP,因此先建立儲存信息之 ActionForm 類,再產生扮演 Controller 角色之 Action 類,最後再由 ActionForm類產生 JSP 檔案。點擊選擇Object Gallery 對話框 Web 頁次中 ActionFormWizard 可產生自定義之 ActionForm 類,ActionFormWizard 又可分爲三步:第一步精靈自動偵測出之前已建妥之 Web 應用程序demo,我們將自定義 ActionForm 名稱由預設 Untitled1ActionForm 修改爲 MyActionForm,接着按下 Next 按鈕進入第二步。第二步依照需求將未來 JSP 頁面上所需顯示與輸入的字段加入 Field definition 清單方塊中,倘若負責網頁美工專職人員已備妥輸入用JSP 網頁,亦可按下 Add from JSP… 按鈕直接導入,JBuilder 將解析此 JSP 檔案產生Field definition 表格。本例中由於未準備輸入之 JSP 檔案,因此必須自行加入所需之字段。我們爲此 Web 應用程序預先準備三個字段,str1 與 str2 可儲存輸入之字符串,result 可置放兩字符串連接後結果。設定完成後按下 Next 按鈕進入第三步後根據默認設置按Finish。







   
接下來我們將利用現有 MyActionForm.java 產生/MyJsp1.jsp,點擊選擇Object Gallery 對話框 Web 頁次中JSP from ActionForm Wizard,將出現以三步產生 JSP 之精靈。

    


    修改jsp名字,同時選擇ActionForm Class,選擇好後,按OK就產生了一個JSP文件。
  

  
 


  步驟四 : 建立自定義之 Action 類

  點擊選擇Object Gallery 對話框 Web 頁次中 Action Wizard可產生自定義之 Action 類,Action Wizard 分爲兩步:第一步精靈自動偵測出之前已建立之 Web 應用程序demo 與 struts-config.xml 組件檔,我們將自定義 Action 名稱由預設 Untitled1Action 修改爲 MyAction,接着按下Next 按鈕進入第二步。





  在第二步對話框中,我們可以設定 MyAction 的 perform 方法會傳入哪一個 ActionForm,在FormBean Name 組合方塊中,所有記錄於 struts-config.xml 中的 ActionForm 都會列出以供選用,此外我們設定 myAction 之有效範圍( Scope ) 爲 request。



  按下 Finish 按鈕後即產生 myAction.java 檔案。在myAction.java 中,JBuilder 已經自動產生了 perform 方法與尚未實現之例外程序代碼。但是我們用的是Struts 1.1,所以需要刪除這個方法,重新生成一個execute的方法。打開菜單 Wizards  -> Override Methods ,從打開的對話框裏面,選出execute(ActionMapping……)這個方法,按OK按鈕。



  按如下修改execute代碼:
 
 
  public class MyAction extends Action {
   public ActionForward execute(ActionMapping parm1, ActionForm parm2,
          HttpServletRequest parm3, HttpServletResponse     parm4) throws java.lang.Exception {
       MyActionForm myActionForm=(MyActionForm)parm2 ;
       String sA = myActionForm.getStr1 ( ) ;
       String sB = myActionForm.getStr2 ( ) ;
       myActionForm.setResult (sA+sB) ;
       System.out.println("HelloAction.do executing..........");
       return ( parm1.findForward ( "hello" ) ) ;
   }
}
 



 
 步驟五 : 修改struts-config.xml文件和MyJsp1.jsp

  從現在開始,基本進入手動修改狀態。點擊選擇 JBuilder 左上方之項目窗格 ( Project Pane ) 內之struts-config.xml,此時集成開發環境便可以圖形使用者接口方式編輯 struts-config.xml 內容,左下方結構窗格( Structure Pane ) 會依照 struts-config.xml 結構,分爲 DataSources 、Form Beans、Global Forwards 與 Action Mappings四類標記項目。

  


   
    選擇Global Forwards,添加一個選項,Name: hello   Path:/Myjsp1.jsp
 
    單擊右下角的Source,修改xml的源代碼。修改第2行中的Struts版本號爲1.1。具體的xml文件如下:

  <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="myActionForm" type="mytest.MyActionForm" />
</form-beans>
<global-forwards>
<forward name="hello" path="/MyJsp1.jsp" />
</global-forwards>
<action-mappings>
<action name="myActionForm" type="mytest.MyAction" input="/MyJsp1.jsp" scope="request" path="/MyAction1" />
</action-mappings>
</struts-config>
 
   

    該XML將爲Action類做一個映射,如上用藍色標明的部分,以後通過 "/MyAction1" 就可以訪問 mytest.MyAction這個類。

    在MyJsp1.jsp文件的form的action中,使用這個標籤。將Form的處理頁設置爲該類  <html:form action="MyAction.do" method="POST"> ,並且確定在jsp文件中,屬性控件str1、str2和result的順序是 str1,str2,result。

  

 
 步驟六 : 設定執行組件

  單擊工具欄中的 Run Configurationg ,將彈出Run的設置菜單。

   


 

   將Type設置爲Server,並且選擇JSP/Server中的Jsp爲MyJsp1.jsp。

  此時執行組件屬性設定對話框中主要項目皆已設定完畢,按下 OK 按鈕返回項目屬性設定對話框。項目屬性對話框中將把前述步驟所設定之執行組件列於Runtime Configurations 清單方塊中,按下 OK 按鈕即完成執行組件設定。

 
 步驟七 : 執行 Web 應用程序

  接下來可點擊選擇 JBuilder 菜單 Run 或工具列中綠色三角形符號執行此 Web 應用程序。JBuilder 將於集成開發環境內激活 Tomcat 4.0 Server,我們可以通過 JBuilder 內置之 Web 瀏覽器進行測試。在 Web 瀏覽器中我們鍵入 AAA 與 BBB 按下 Submit 按鈕,得到預期之運算結果AAABBB。




 

   步驟八:設置使之能識別中文文字

  處理方法是:

    (1)在 JSP 起始處加上:

<%@ page contentType="text/html; charset=MS950" %>  對於繁體中文

<%@ page contentType="text/html; charset=GB2312" %>   對於簡體中文(常用編碼爲GB2312)


    (2)創建一個Serverlet類處理接收字體的編碼

  首先,點擊選擇 JBuilder 主菜單 File | New Classes 準備產生一新的類。並繼承自org.apache.struts.action.ActionServlet並將預設的類名稱由Untitled1 改爲 myActionServlet。按下 OK 按鈕後即產生程序代碼。點擊選擇 JBuilder 主菜單Wizards | Override Methods… 激活覆蓋方法精靈,覆蓋方法精靈會自動列出父類 ActionServlet 所有可供覆蓋之方法。我們可於 Available methods 清單方塊中選取process (HttpServletRequest request, HttpServletResponse response) 方法,完成後按下 OK 按鈕。


    此時我們可修改覆蓋後 process 方法程序代碼如下:

  request.setCharacterEncoding ("MS950") ;
super.process (request, response) ;
request.setCharacterEncoding ("GB2312") ;
super.process (request, response) ;
 
  //繁體中文 //簡體中文  

    接下來我們將要修改 web.xml部署描述檔,以指定 Servlet 之進入點,首先點擊選擇左上方項目窗格中的 web.xml。



  點擊選擇內容窗格內的 Sources 頁次,直接以文字編輯器修改<servlet-class> 標記的內容:   <servlet-class>
mytest.myActionServlet</servlet-class>

  完成後重新編譯此項目並執行之。再次測試後我們將發現中文已經可以正確處理。

              終於完成了。!!!!!!多提意見啊。。。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章