跳至內容

WebObjects/動手:Hello World - 您的第一個 WebObjects 應用程式

來自華夏公益教科書,開放的世界,開放的書籍

此華夏公益教科書的內容已過時,現已移至http://wiki.objectstyle.org/confluence/display/WO/Home

建立一個新的 WebObjects 專案

[edit | edit source]

啟動 Xcode(位於 Developer->Applications)。從“檔案”選單中選擇“新建專案...”以顯示“新建專案”助理。滾動到專案型別列表的底部,然後選擇“WebObjects 應用程式”。


點選“下一步”。輸入“HelloWorld”作為“專案名稱”,然後點選“設定...”按鈕以指定您希望將專案儲存到桌面,或您希望儲存專案的位置。請注意,早期版本的 WebObjects 在構建專案時,如果路徑中包含空格,則會遇到問題。


多次點選“下一步”,直到出現“完成”按鈕,然後點選它(我們稍後會介紹所有其他螢幕)。如果您一切順利,您將得到一個類似於此的介面(取決於您如何配置 Xcode)。

編輯“Main”元件

[edit | edit source]

現在您應該看到一個全新的 WebObjects 專案。如果您喜歡用比喻,這就是您的“空白畫布”。如果您習慣於建立僅包含 HTML 檔案和影像的網站,它可能看起來有點複雜,但它並沒有複雜太多。我們感興趣的主要檔案位於“Web 元件”組中。


當您第一次建立 WebObjects 專案時,您將只有一個“元件”,即“Main”元件。WebObjects 元件包含一個資料夾和一堆檔案,但在現階段,我們實際上只關心兩個檔案。

  • Main.wo - 包含介面
  • Main.java - 我們將在其中放置 Main.wo 頁面的邏輯。

雙擊“Main.wo”檔案,在 WebObjects Builder 中編輯介面。


您應該會看到類似於上圖的螢幕。這就是 WebObjects 元件在 WebObjects Builder 中的樣子。視窗的上半部分是一個所見即所得(大多數時候(WYSIWYG(MOTT)) HTML 編輯器,您可以在其中設計頁面。視窗的下半部分用於將介面元素連線到 Web 應用程式“邏輯”部分中的變數。在視窗的上半部分中輸入文字“Hello, what is your name?”。


透過從“表單”選單欄項中選擇“WOForm”、“文字欄位”和“提交按鈕”來向頁面新增一些表單元素。最後,透過從“WebObject”選單欄項中選擇“String”來新增一個佔位符 String2。現在您已經完成了一個介面:一個標題邀請訪問您 Web 應用程式的訪客輸入他們的姓名,一個文字欄位供他們輸入姓名,一個按鈕供他們提交表單,以及一個佔位符,用於顯示您想要顯示的字元字串響應。

新增一個動作和一個鍵

[edit | edit source]

現在您已經有了介面,您需要編寫第一個 WebObjects 應用程式的邏輯。這個應用程式允許使用者在表單中輸入他們的姓名,並顯示相應的訊息。為了實現這一點,我們將編寫一些 Java 程式碼。每個 WebObjects 元件都有一個 Java 檔案,其中包含該元件的邏輯。Java 是一種面向物件的程式語言,因此如果您不熟悉面向物件程式設計,下一部分可能會介紹一些新概念。在現階段,您不需要了解面向物件程式設計的細節,但瞭解一些基本術語可能會有所幫助。每個 Java 檔案都包含一個類,它類似於一個食譜(我似乎喜歡比喻)。該類包含變數,類似於成分,以及方法,類似於食譜中的步驟。Java 類和食譜之間的主要區別在於,在 Java 中,您在開始之前並不知道要烘焙什麼,因此,雖然食譜可能會說“取一杯麵粉並將其混合”,但 Java 類會說“取一杯東西並將其混合”,您可以在應用程式執行時決定“東西”到底是什麼。總之,夠了,讓我們開始動手吧。為了讓我們的應用程式以我們想要的方式執行,我們需要修改與我們的頁面關聯的“Main”類。我們想要新增兩樣東西:一個變數(可以理解為成分)來跟蹤使用者輸入的內容,以及一個方法(可以理解為步驟)來描述我們應該如何處理該變數。為了使事情更加有趣,WebObjects Builder 在談論變數和方法時使用了自己的術語。它指的是“鍵”和“動作”。我將做 WebObjects 應該做的事情,使事情變得更簡單,使用其他世界用來指代 Java 類的術語,因此,當 WebObjects 說“鍵”時,請理解為“變數”,當您聽到“動作”時,請理解為“方法”(您會習慣的)。

因此,要新增一個變數來跟蹤訪問者的姓名,請點選“介面”選單欄項,然後選擇“新增鍵...”。


在滑下來的屬性表中,在“名稱”欄位中輸入 visitorsName(大寫是一種在 Java 中程式設計的慣例),在“型別”欄位中輸入“String”,並確保在點選“新增”之前勾選“例項變數”。


您現在應該在視窗下半部分的“應用程式”和“會話”下看到“visitorsName”。這表明與該元件關聯的 Java 類有一個名為 visitorsName 的變數,該變數可用於繫結到介面元件。重複此步驟,將“message”變數新增到“Main”元件中。接下來,我們需要在類中新增一個方法,當訪客點選提交按鈕時將執行該方法。再次點選“介面”選單項,這次選擇“新增動作...”。


輸入“sayHello”作為“動作名稱”,然後點選“新增”。開啟 Main.java 檔案,檢視已新增到該檔案的變數和方法。它現在應該看起來像下面的程式碼

public class Main extends WOComponent {
    public String visitorsName;
    public String message;
	
    public Main(WOContext context) {
        super(context);
    }

    public WOComponent sayHello() {
        return null;
    }
}

將介面連線到邏輯

[edit | edit source]

現在您已經建立了介面,並向底層的 Java 程式碼添加了變數和方法,我們唯一需要做的事情就是將介面“連線”到邏輯。我們需要指定,當按鈕被點選時,應該執行“sayHello”方法,並且“visitorsName”變數的值應該來自文字欄位。為此,我們需要切換回 WebObjects Builder。

從視窗下半部分“visitorsName”旁邊的空間中點選並拖動到文字欄位,然後從下拉選單中選擇“value”,以指示您希望“visitorsName”變數從文字欄位獲取其值。重複此步驟,將動態 String 的“value”繫結到“message”變數,並將“提交”按鈕的“action”繫結到底層 Java 類中的“sayHello”方法。


將介面連線到邏輯後,唯一剩下要做的就是編寫一行(或兩行)Java 程式碼,以在按鈕被點選時構建自定義訊息。

編輯 Java 程式碼

[edit | edit source]

雙擊“Main.java”檔案開啟它。填寫 sayHello 方法的詳細資訊,如以下示例。基本上,當執行此方法時,我們希望根據包含要問候的人姓名的變數“visitorsName”構建一個自定義訊息。

public class Main extends WOComponent {
    public String visitorsName;
    public String message;
	
    public Main(WOContext context) {
        super(context);
    }

    public WOComponent sayHello() {
        message = "Hi there, " + visitorsName + "!";
        return null;
    }
}

恭喜您 - 您剛剛編寫了第一個 WebObjects 應用程式。確保您已在 WebObjects Builder 中儲存 Main.wo 檔案,並在 XCode 中儲存 Main.java 檔案,然後您就可以編譯程式碼並執行應用程式了。點選 XCode 中的“構建並執行”按鈕測試您的應用程式。

華夏公益教科書