• 沒有找到結果。

第一个 Action

在文檔中 第一部分: (頁 25-28)

这个 Action 就是在浏览器地址栏输入指定的 URL 之后,将会产生出现一个拥有问候信 息”Hello World”的页面。

2.3.1 创建 helloworld.action

在 Struts2 里面所有的控制部分都是由 Action 来完成的,虽然可以把这句问候信息直接 加到 JSP 页面里面,但是为了展示 Struts2 的魅力,在这里暂且大材小用,用 Action 来完成 这个功能。

这段代码要完成的功能很简单,当浏览器向服务端请求这个 Action 的时候,服务端启 动编译并运行这个 Action,在这个页面里面设置了一个 message 字段。而这个字段将被后续 的页面使用到。设置完 Action 的 message 字段之后,服务端简单的把请求转向 hello.jsp 页面。

这个 Action 存放的目录是:\ww\src\example 下。

helloworld.java package example;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")

public class helloworld extends ActionSupport{

public String message;

public String execute(){

message = "hello world!\n";

return SUCCESS;

}

public String getMessage(){

return message;

} }

在这个 Action 中,有一个成员变量 message,并且定义了 getter 方法,这是一种 JavaBean 模式,通过这种模式 Action 中的成员可以从页面获取,在 execute()函数中只是简单为 message 赋值,最后返回一个成功的字符串,作为整个 Action 的返回类型,通过返回类型就 可以在 struts.xml 文件找到对应的返回页面。execute 方法是任何一个 Action 都必须实现的方 法,也是 Action 中核心的操作。

注意:@SuppressWarnings("serial")这句代码 MyEclipse 为了除去警告而添加的,无关紧要的。

2.3.2 在 struts.xml 中配置 Action

在有了这段代码之后,为了使用Struts2提供的基础框架,必须向Struts2注册这个Action。

于是在struts.xml中添加action子元素。对应的配置代码如下所示:

<action name="helloworld" class=" example.helloworld">

<result name="success">hello.jsp</result>

</action>

这段 XML 告知 Struts2 基础框架,将要使用一个名为 helloworld 的 Action,这个 Action 对应的类的位置为 example.helloworld.java。它有一个名为 success 的结果页面 hello.jsp 与之 对应。

2.3.3 创建视图 hello.jsp

下面要写一个显示页面来输出 hello world!的字样,也就是上面 Action 中定义的 message 中的内容,至于为什么会联系起来,那将会在后面的章节进行讲解,希望读者继续下去。

hello.jsp 存放的目录是:\ww\WebRoot。

hello.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>

<html>

<head>

<title>Hello Page</title>

</head>

<body>

The message generated by my first action is:

<s:property value="message" />

</body>

</html>、

第一句代码是表明前缀 s 和 Struts2 标签路径 URI 之间建立映射关系,这个 URI 就是前 面提到的,Struts 为我们默认定义的。前缀 s 就是表明所有用到 Struts2 标签的地方就要加上 前缀 s。在这个页面上就是使用了一个 property 标签,这个标签包含了一个 value 属性值,

通过设置 values 的值,标签就可以从 Action 中获得相应表达式的内容,也就是通过上面 Action 中定义的 getMessage()函数来完成的。

2.3.4 测试 Action

所用文件编辑完成后,最终的文件目录层次结构将如图 2-18 所示。实际有用的文件都 是在 WebRoot 目录下的。

注意:图中的文件目录还包含后面的拦截器例子,大家可以先不管它。有一个细节要告诉读 者,在 src 的文件夹下可以放 struts.xml 文件,它会自动在相应的目录下复制一个。一般.java 的文件都在 src 目录下,它们会自动编译生成.class 文件存在/WEB-INF/classes 目录下,这些 才是可以执行的。

图 2-18 Web 项目的目录层次结构示意图

接下来要看看怎么用 Eclipse 去部署这个 web 项目,如图 2-19 所示,点击红色区域所示 的工具按钮来部署。

图 2-19 部署按钮

点击图 2-19 所示的按钮后将会如图 2-20 所示的界面。在弹出窗口中选择 add 按钮,在 新弹出的窗口中选择 Server 为 Tomcat5,点击确定按钮,如图 2-20 所示。

图 2-20 配置界面

这样配置就完成了,最后如图 2-21 所示就表明部署成功了。

图 2-21 部署成功界面 然后就可以直接在 Eclipse 下打开 Tomcat,进行检测。

注意:如果在运行 Tomcat 之前,如果修改了.xml、.java 文件或者是增减 jar 包,都要重新部 署这个项目,只要点击图上的红色标记的 Redeploy 按钮就可以重新部署项目。

按上面步骤编辑和部署完之后,如果没有什么特殊情况,那么在浏览器输入:

http://localhsot:8080/ww/helloworld.action

将看到一个 Web 页面,只有一行问候语:"The Message Generated by my first Action is:

Hello World."这是一个最基本的 Struts2 应用,如图 2-22 所示。

图 2-22 成功的显示页面

在文檔中 第一部分: (頁 25-28)