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 中的“构建并运行”按钮测试您的应用程序。