SSH2.0


SSH2.0
Struts2.0 spirng2.0

开发环境:
Windows xp
Eclipse3.3
MyEclipse6.0
Struts2.0.6
Spring2.0.4

教学内容
Struts2.0的应用之Login
表单验证
使用freemarker模板
集成Spring2.0
Struts2.0的单元测试

准备工作
struts-2.0.6-all.zip
spring 2.0.2

开发步骤
Struts2.0的Login应用
建立一个Struts2.0应用(ssh2)
将struts-2.0.6-all.zip包lib目录以下文件拷贝到项目的lib目录中,刷新工程。
antlr-2.7.2.jar
commons-beanutils-1.6.jar
commons-chain-1.1.jar
commons-logging-1.0.4.jar
commons-validator-1.3.0.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
oro-2.0.8.jar
struts2-core-2.0.6.jar
xwork-2.0.1.jar
编辑web.xml文件,加入以下红色字体部份

页面的设计
进入登录界面login.jsp填写的用户名和密码
用户名和密码验证成功后跳转到首页index.jsp
用户名和密码验证失败后跳转到错误页error.jsp

类图

相关代码
页面部份
login.jsp

index.jsp

error.jsp

Java代码部份
User.java

LoginAction.java


配置文件部份
新建struts.xml(src目录)

表单验证
配置验证器
在src目录新建validators.xml文件,文件内容如下:

这些验证器已经定义了一些常用的验证,如:必填验证、数字验证、日期验证、邮件验证等。
要启动表单验证,需要增加一个拦截器,对 struts.xml 文件进行修改,增加 <interceptor-ref name="validationWorkflowStack" />

建立验证配置文件
      对 LoginAction 进行验证规则的配置,需要新建一个配置文件,文件名以 “Action 的名称” + “-validation.xml”来命名,并保存到 LoginAction.java 文件所在的目录中
如:
       LoginAction-validation.xml
文件内容如下:

修改 login.jsp,代码如下:

这里的红字部份为struts的标签

修改配置文件,加入input属性,设置了此属性表单提交后如果出错后将返回到指定的页面


使用freemarker模板
使用freemarker模板语言来显示页面内容在Struts2中实现起来很简单,现在欢迎页面改为使用freemarker来显示。
新建welcome.ftl文件,后缀名为ftl的文件即为freemarker模板文件夹,文件内容如下:

有一点需要注意,welcome.ftl文件默认编码为GBK,需要将其转为UTF-8,否则中文不能正常显示。
修改Action执行成功后的转向,转到welcome.ftl
原:

改:


红字部份为类型,这里需要指定为freemarker

集成Spring2.0
加入spring2包内dist目录下的spring.jar文件,加入struts2包内lib目录下的struts2-spring-plugin-2.0.6.jar
修改 web.xml,为 Web 应用增加相应的 Spring ContextLoaderListener

在 src 目录下新建 struts.properties 文件,内容如下:
struts.objectFactory = spring
新增 Service 层的对像 IUserService、UserService
IUserService










UserService


修改 LoginAction.java代码


修改 struts.xml


这里红字部份为引用spring中的bean
加入spring框架,并配置loginAction Bean
applicationContext.xml文件内容如下:

红字的login就是struts.xml文件中所引用的Bean



Struts2.0的单元测试
使用spring-mork进行单元测试
加入spring-mork.jar文件
编写BaseTest.java文件,以后所有的单元测试用例都将继承于它,它的作用是读取spring的配置文件。






创建测试用例LoginActionTest.java












你可能感兴趣的:(spring,freemarker,jsp,struts,单元测试)