Struts 初学指南

发表于:2007-07-04来源:作者:点击数: 标签:
Struts 应该已经不算很新的东西了, 不知道还有没有初学者需要下面的内容 一、Struts 简介 Struts 是 apache 组织 jakarta 项目的一个子项目,用以改善 web 系统的结构。 Web 系统本身的复杂性与业务流程的不确定性,是相当棘手且难于处理的。 例如,用户可能
Struts 应该已经不算很新的东西了,
不知道还有没有初学者需要下面的内容

一、Struts 简介
Struts 是 apache 组织 jakarta 项目的一个子项目,用以改善 web 系统的结构。

Web 系统本身的复杂性与业务流程的不确定性,是相当棘手且难于处理的。
例如,用户可能随时使用一个链接从系统的这部分跳到另一部分。又或者登陆一个
页面后可能隔半天没反映,而突然又请求另一项服务 …………
如果 Web系统没有一个很好地设计结构,这些烦人的问题能缠着你直到你崩溃,
或者系统崩溃。 即使你硬撑着闯过几关,后期维护工作又能把你逼疯,或者把
其他的维护人员逼疯! :)

MVC(模型-视图-控制器)模式最重要的思想就是 业务代码 与 视图代码 分离。
能有效地理清系统结构,降低系统复杂度与维护难度。

Struts 就是基于J2EE 的 web 形式 MVC 模式实现!

当然, Struts 不只是如此。 它主要由两大部分组成,其一是上面所说的改善
web 系统结构的 MVC 框架部分。 另一部分是 Struts 的标签库,主要由 web
页面制作人员使用。

我们主要讲的是第一部分,一些入门级的内容,以及新手会碰到的一些问题。


二、环境配置
我们用 Tomcat 4.1.29 + Struts1.1 来做演示。
Tomcat 的下载地址:
http://apache.linuxforum.net/dist/jakarta/tomcat-4/v4.1.29/bin/jakarta-tomcat-4.1.29.zip
Struts 的下载地址:
http://apache.linuxforum.net/dist/jakarta/struts/binaries/jakarta-struts-1.1.zip

添加环境变量: (例如:)
JAVA_HOME C:j2sdk1.4.2
TOMCAT_HOME C: omcat

同时,你也需要将 Strutslibstruts.jar 、Tomcatcommonlibservlet.jar
文件添加到 CLASSPATH 变量中,代码编译时会用到。
(当然,有 eclipse 等集成环境就方便多了)

运行 Tomcat instartup.bat 启动 Tomcat
Tomcat 测试: http://localhost:8080/ 能看到那只猫就算成功了

Struts 其实根本不需要多少配置
解压 Struts 的下载压缩包,复制 webappsstruts-example.war 文件
到 Tomcat 的 webapps 目录下,然后重启 Tomcat 就可以测试
输入:http://localhost:8080/struts-example/ 看到蓝色的“Struts”图标就OK了
注意:如果你测试老不成功,建议换台机子试试。
Java 环境太乱测试会失败?!(我就这样憋了一天)


三、实例演示
如果上面的配置做完了,我们开始要做个小演示。 演示任务是做一个用户
注册/登陆 的“站点”。 关于 Struts 的演示,这类用户注册/登陆的例子算是老套了。
不知道我的例子能否激起你的兴趣。 :)

首先,在 Tomcatwebapps 目录下建个子目录 取名 StrutsDemo
StrutsDemo 下的目录结构如图

StrutsDemo 下放所有的 .jsp 页面文件
复制 Struts 解压目录 lib 下的所有 *.tld 文件到 WEB-INF 下
这些是 Struts 的标签库文件,我们的例子会用到一点。

复制 Struts目录lib 下的所有 *.jar 文件到 WEB-INFlib 目录
用到的 .jar 包都要放这儿,否则会发生找不到类资源的错误
(要做 Struts 相关的,起码要把 Struts 解压目录下 lib 下的 .jar 考过来)

WEB-INFclasses 目录下(或它的子目录下) 还需要有个 .properties 资源文件
用来支持国际化

上面是准备一个基于 Struts 工程最基本的准备工作

本来打算贴代码,限于篇幅提供代码下载,已包含详细注释
下载:StrutsDemo.rar



四、初学者需要注意的问题
(1) 2个 .xml 的配置文件确实很烦人,特别是直接用记事本的朋友
要有耐心, 格式一定要正确, 可以参考 Struts 自带的例子

(2) struts-config.xml 文件里Acturn 属性的 validate 字段属性需要设置为 “true”
才能启动 对应 Form 的 validate 方法启动页面检测

(3) strturs_config.xml 配置文件中 的 scope 字段,用来指定 Action 的活动范 围,默认的值是"session",所以一般我们将scope设置为"request"。 如果需要设置
为"session",则留心一下对应 Form Bean 的 reset() 方法还原 Form Bean 初始值;

(3)怎样制作 *_zh.properties 中文资源文件
使用 JAVA_HOMEin 目录下的 native2ascii 工具
先制作一个 ApplicationResources.properties文件里采用中文书写信息
然后 命令行窗口键入
native2ascii -encoding gb2312 ApplicationResources.properties
ApplicationResources_zh.properties

一时想不出来了,以后再添吧 -___-!!


参考资料:
《一些Struts方面的使用经验》 An LianWu (swimren@163.net)
《实例学习 Struts》 胡海生
…………

原文转自:http://www.ltesting.net