这个 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 成功的显示页面