第三章:开始学习Struts 
  
在这一章,我们将开始学习Struts。在开始之前,我们必须先安装和配置Struts应用。我们将创建一个简单的应用来显示Struts是如何工作的。 
这一章我们将提供一个Struts应用来让你快速入门。 
  
获取和安装Jakarta Struts项目 
在开始你的Struts开发前,我们需要获取最新版本的Struts包。目前struts包为1.1 
.地址如下:http://cvs.apache.org/builds/jakarta-struts/nightly/jakarta-struts-20031010.zip 
一旦你获取了版本后,你在部署Struts应用前需要完成下面的预备工作。 
1.  创建一个应用目录<CATALINA_HOME>/webapps/wileystruts 
2.  复制struts的JAR文件到<CATALINA_HOME>/webapps/wileystruts/WEB-INF/lib目录下,jar文件列表如下: 
struts.jar ¨  
commons-beanutils.jar ¨  
commons-collections.jar ¨  
commons-dbcp.jar ¨  
commons-digester.jar ¨  
commons-logging.jar ¨  
commons-pool.jar ¨  
commons-services.jar ¨  
commons-validator.jar ¨  
3.在<CATALINA_HOME>/webapps/wileystruts/WEB-INF/下创建web.xml,在文件中添加如下代码: 
<?xml version="1.0" encoding="ISO-8859-1"?> 
<!DOCTYPE web-app 
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 
2.3//EN" 
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd"> 
<web-app> 
</web-app> 
4.创建一个strut-config.xml文件,复制到 
<CATALINA_HOME>/webapps/wileystruts/WEB-INF/ 目录下。 
struts-config.xml是Struts应用的部署描述文件。它用来把MVC组件组合在一起。 
它通常被放置在 
<CATALINA_HOME>/webapps/ webappname/WEB-INF/目录下,我们将会频繁的使用到它。空的struts-config.xml如下: 
<?xml version="1.0" encoding="ISO-8859-1" ?> 
<!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> 
<message-resources 
parameter="wiley.ApplicationResources"/> 
</struts-config> 
注意:如果你使用Struts 1.1 b1版本,在struts-config.xml文件中你需要添加<message-resources />元素。现在我们只是简单的创建struts-config.xml文件,对于每个元素的详细介绍我们将放在第六章“国际化你的struts应用”。在这章我们将创建struts应用中所有必须的组件。当你开始设计和开发你的Struts应用时,你必须安装和培植你的struts组件。在下一节,我们将会说明那些步骤是必须完成的。 
  
创建你的第一个Struts应用 
你已经完成了struts包的下载和安装,现在可以开发Struts应用了。我们的应用由查询股票号码的简单的JSP页面来完成,它将返回被查询股票的价格。我们会通过这个例子来说明在创建Struts应用中必须执行哪些步骤。因为Struts技术来源于MVC设计模式,所以在所有基于Struts的开发中,你可以遵循MVC模式这种标准来进行处理。处理方式为:从视图开始,控制器对象操纵模型组件来为视图服务。这个处理过程通过下面步骤来实现: 
1.定义并创建实现某一功能的相关视图,它们是应用中的用户接口。在struts-config.xml这个struts配置文件中所有的ActionForm 就是我们要创建的视图。 
2.创建控制器组件。 
3.在struts-config.xm文件中定义视图,控制器之间的关系。 
4.在web.xml文件中配置启动struts的一些必要信息。 
5.启动应用。 
上述步骤只是对Struts开发做了概要描述,在接下来的章节我们将会对这些步骤进行比较细致的描述。 
创建视图 
在创建struts应用的视图时,我们会先创建一个包含Struts标签的JSP文件。 
当前有三个主要的struts标签,Bean, HTML和Logic。在第5章我们会集中关注在这几个标签库上,但这章我们在视图中主要关注于HTML标签库。在开始我们的应用时,我们首先要需要描述视图接口。在下面的应用中有两个视图:index.jsp和quote.jsp。 
  
Index视图 
Index视图有index.jsp文件来表现,是我们第一个看到的视图。它用来查询股票和提交 
请求到相应的Action中。Index.jsp源文件如下: 
------------------------------------------------------------ 
Listing 3.1: index.jsp. 
<%@ page language="java" %> 
<%@ taglib 
uri="/WEB-INF/struts-html.tld" 
prefix="html" %> 
<html> 
<head> 
<title>Wiley Struts Application</title> 
</head> 
<body> 
<table width="500" 
border="0" cellspacing="0" cellpadding="0"> 
<tr> 
<td> </td> 
</tr> 
<tr bgcolor="#36566E"> 
<td height="68" width="48%"> 
<div align="left"> 
<img src="images/hp_logo_wiley.gif" 
width="220" 
height="74"> 
</div> 
</td> 
</tr> 
<tr> 
<td> </td> 
</tr> 
</table> 
<html:form action="Lookup" 
name="lookupForm" 
type="wiley.LookupForm" > 
<table width="45%" border="0"> 
<tr> 
<td>Symbol:</td> 
<td><html:text property="symbol" /></td> 
</tr> 
<tr> 
<td colspan="2" align="center"><html:submit /></td> 
</tr> 
</table> 
</html:form> 
</body> 
</html> 
  
如你看到的index视图,除了form标签外,它就象一个包含数据集合的HTML页面。在HTML页面中我们把FORM标签改为用Struts标签<html:form />来替换。 
这个标签和它的子标签封装了struts form的处理。Form标签的属性列表如下: 
  
  
  
  
  
  
  
  
 
| 
 属性  | 
 描述  |  
| 
 action  | 
 Form被提交到的URL地址。这个属性用来在struts-config.xml配置文件中查找对应的action。 
这个属性在我们的例子中是“Lookup”。 
file, which we will describe later in this section. The 
value used in our example is Lookup, which will map 
to an ActionMapping with a path attribute equal to 
   |  
| 
 name  | 
 ActionForm的识别键。在这个例子中的值为LookupForm。 
ActionForm是Struts中用来封装客户端数据的JavaBean对象。它的主要目的是审查视图到控制器组件的数据。我们会在本章的后面讨论LookupForm。  |  
| 
 Type 
   | 
 请求的类名的全称,这个例子中的值为wiley.LookupForm。它封装了客户端输入的数据。  |   
  
<html:form />标签是另外两个标签的父类。第一个是<html:text /> tag.。这个标签和HTML中的<input type=”text”..>意义是一样的。只有一点不同的地方那就是property属性。它的值是唯一的,和ActionForm类中对应的成员变量是对应的。 
第二个标签是<html:submit />,它只是简单仿效HTML的submit按钮的功能。 
ActionForm 类通过使用<html:form />标签来创建一个实例,并把<html:text />标签的值存储到实例中。实例最后被存储到一个session对象当中。 
一旦ActionForm实例被存储了相应的数值之后,action通过<html:form />来调用和审核存储在ActionForm上的数据。 
1.为了使用前面提到的标签,你必须在  wiley这个s应用的Web.xml文件中添加对应的标签引用。下面的代码段就是添加在web.xml中的标签元素: 
<taglib> 
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri> 
<taglib-location>/WEB-INF/struts-html.tld</taglib-location> 
</taglib> 
2.你必须复制struts-html.tld文件到<CATALINA_HOME>/webapps/wileystruts/ WEB_INF/目录下。 
注意:上面的这两个步骤在部署所有struts应用中都会用到,唯一的不同就是部署时TLD文件的不同(表示不同的标签库)。另外的标签库我们会在第五章进行讨论。 
作者:James Goodwill   翻译:周海方 
欢迎转载,前提是注明出处和译者  
 
  |