06单元6基于Struts2的Web应用程序开发(校)

发布时间 : 星期四 文章06单元6基于Struts2的Web应用程序开发(校)更新完毕开始阅读

单元6 基于Struts2的Web应用程序开发

在Web项目task6-5的包package065中创建名为“LoginAction”的Action文件。打开LoginAction.java文件,在LoginAction类中编写代码定义多个属性及相应的setXXX()与getXXX()方法,在该类中还重写了ActionSupport类的execute()方法,代码如表6-22所示。

5.创建配置文件struts .xml

在Eclipse的【项目资源管理器】的子文件夹“src”中创建一个配置文件struts .xml,在配置文件struts .xml中定义1个Action对象loginAtion,其主要代码如表6-23所示。

6.新建一个验证文件LoginAction-validation.xml

在Web项目task6-5的包package065中创建名为“LoginAction-validation.xml”的验证文件。打开LoginAction-validation.xml文件,编写如表6-18所示的代码。

7.运行程序输出结果

运行JSP页面task6-5.jsp,在用户登录页面的“用户名”文本框中输入“admin”,在“密码”文本框和“确认密码”文本框中输入“123456”,然后单击【提交】按钮,此时经LoginAction-validation.xml验证文件校验表单数据,如果校验通过,打开welcome.jsp页面,在该页面中显示“登录成功!欢迎您admin”的欢迎信息。

【任务6-6】使用Struts 2实现用户注册功能

【任务描述】

(1)使用Struts 2框架提供的表单标签创建用户注册页面。

(2)创建验证文件,对用户注册页面输入的用户名、密码和Email地址进行验证。 (3)使用Struts 2的处理机制将用户注册表单提交的数据自动注入到与Action对象中相应的属性,如果用户注册成功则在JSP页面welcome.jsp显示“注册成功!”的提示信息,否则返回注册表单,重新输入用户信息。

【任务实施】

1.配置程序开发环境

首先新建动态Web项目task6-6,在该项目中创建包package066。然后按照【操作必备】中介绍的方法添加Struts 2的核心类包以及在web.xml文件中声明Struts 2提供的过滤器。

2.创建JSP页面task6-6.jsp 在Web项目task6-5中创建名为“task6-6.jsp”的JSP页面,该页面包含多个表单标签,主要用于用户注册时输入相关用户信息,在表单标签的action属性中指定处理表单信息的Action对象,其代码如表6-24所示。

3.创建JSP页面welcome.jsp

在Web项目task6-6中创建名为“welcome.jsp”的JSP页面,该页面作为Action对象处理成功后的返回页面,其主要代码如下所示,该页面使用标签来获取并显示相应的属性值。

4.新建一个Java类RegisterAction

在Web项目task6-6的包package066中创建名为“RegisterAction”的Action文件。打开RegisterAction.java文件,在RegisterAction类中编写代码定义多个属性及相应的setXXX()与getXXX()方法,在该类中还实现了ActionSupport类的execute()方法,在该方法中直接返回SUCCESS,代码如表6-25所示。

9

Java Web应用程序开发任务驱动教程

5.创建配置文件struts .xml

在Eclipse的【项目资源管理器】的子文件夹“src”中创建一个配置文件struts .xml,在配置文件struts .xml中定义1个Action对象registerAction,其主要代码如表6-26所示。

6.新建一个验证文件RegisterAction-validation.xml

在Web项目task6-6的包package066中创建名为“RegisterAction-validation.xml”的验证文件。打开RegisterAction-validation.xml文件编写数据验证代码,新添加的验证代码如图6-27所示,其他代码如表6-18所示。

7.运行程序输出结果

运行JSP页面task6-6.jsp,在用户注册页面的“用户名”文本框中输入“admin6”,在“密码”文本框和“确认密码”文本框中输入“123456”,在“Email”文本框中输入“good@163.com”,然后单击【提交】按钮,此时经RegisterAction-validation.xml验证文件校验表单数据,如果校验通过,打开welcome.jsp页面,在该页面中显示“admin6注册成功!”的欢迎信息。

【典型应用】

【任务6-7】使用Struts 2实现避免重复提交网页数据

【任务描述】

(1)创建JSP页面,在该页面中使用防刷新的Struts 2标签

(2)创建struts.xml配置文件,在该文件中配置Action对象,使用标签配置系统默认的拦截器栈和token拦截器,并定义重复提交转向的视图,该逻辑视图名为invalid.token,如果处理结果返回success,则转向show.jsp文件。

【任务实施】

1.配置程序开发环境

首先新建动态Web项目task6-7,在该项目中创建包package067。然后按照【操作必备】中介绍的方法添加Struts 2的核心类包以及在web.xml文件中声明Struts 2提供的过滤器。

2.创建JSP页面task6-7.jsp

在Web项目task6-7中创建名为“task6-7.jsp”的JSP页面,该页面使用了等多个表单标签,在表单标签的action属性中指定处理表单信息的Action对象,其代码如表6-28所示。

3.创建JSP页面show.jsp

在Web项目task6-7中创建名为“show.jsp”的JSP页面,该页面作为Action对象处理成功后的返回页面,其主要代码如下所示,该页面使用EL表达式的隐含对象requestScope获取Action类中设置的参数goodsName的值。

正常提交,提交的图书名称为:${requestScope.goodsName} 4.创建JSP页面refresh.jsp

在Web项目task6-7中创建名为“refresh.jsp”的JSP页面,该页面作为重复提交页面时转向的页面,其主要代码如下所示。

请不要重复提交页面

10

单元6 基于Struts2的Web应用程序开发

5.新建一个Java类Action067

在Web项目task6-7的包package067中创建名为“Action067”的Action文件。打开Action067.java文件,在Action067类中编写代码定义了属性gname及相应的setGname()与getGname()方法,在该类中还实现了ActionSupport类的execute()方法,在该方法中使用ActionContext对象的put()方法,将属性gname的值保存到参数goodsName中,其返回值为SUCCESS,代码如表6-29所示。

6.创建配置文件struts .xml

在Eclipse的【项目资源管理器】的子文件夹“src”中创建一个配置文件struts .xml,在配置文件struts .xml中定义1个Action对象myAction,其主要代码如表6-30所示。

7.运行程序输出结果

运行JSP页面task6-7.jsp,在表单的“商品名称”文本框中输入“苹果iPhone 5S”,如图6-16所示。然后单击【提交】按钮,此时转向show.jsp页面,在该页面中显示“正常提交,提交的商品名称为:苹果iPhone 5S”的信息。

图6-16 JSP页面task6-7.jsp的运行结果

如果刷新该页面,则Action控制转向refresh.jsp页面,并显示“请不要重复提交页面”的提示信息。

【任务6-8】使用Struts 2实现信息显示的国际化

【任务描述】

国际化是指应用程序支持多种语言和格式化习惯集合,是为了满足应用程序在世界上不同地区的用户群的习惯而提出的。程序在不做任何修改的情况下,就可以在不同的国家或地区和不同的语言环境下,按照当地的语言和格式习惯显示字符。

创建用户登录的JSP页面,在该页面运行时,能够根据客户端请求的语言不同自动适应显示中文字符界面或英文字符界面。

【任务实施】

1.配置程序开发环境

首先新建动态Web项目task6-8,在该项目中创建包package068。然后按照【操作必备】中介绍的方法添加Struts 2的核心类包以及在web.xml文件中声明Struts 2提供的过滤器。

2.创建资源文件

每一个资源文件是“键-值”对的集合,在JSP页面中可以通过键来找到相应的值。 在Eclipse的【项目资源管理器】的子文件夹“src”中创建一个名为

“messageResource_en_US.properties”的资源文件,该资源文件用于保存英文内容,其内容如表6-31所示。

在子文件夹“src”中创建另一个名为“messageResource_zh_CN.properties”的资源文

11

Java Web应用程序开发任务驱动教程

件,该资源文件用于保存中中文内容,其内容如表6-32所示。由于Java从流中读取属性或向流中保存属性时使用的字符集编码是ISO8859-1,所以保存中文内容的属性值需要进行Unicode转义,例如,键title的中文值是“欢迎您登录”,经过转义后的值是“\登\录\页\面”。

3.新建一个Java类LoginAction

在Web项目task6-8的包package068中创建名为“LoginAction”的Action文件。打开LoginAction.java文件,在LoginAction类中编写代码定义多个属性及相应的setXXX()与getXXX()方法,在该类中还实现了ActionSupport类的execute()方法和validate()方法,代码如表6-33所示。

4.创建配置文件struts .xml

在Eclipse的【项目资源管理器】的子文件夹“src”中创建一个配置文件struts .xml,在配置文件struts .xml中定义2个Action对象Login和index,分别为用户登录的控制和首页导航的控制,其主要代码如表6-34所示。

5.创建全局资源文件struts.properties

在Eclipse的【项目资源管理器】的子文件夹“src”中创建一个全局资源文件

struts.properties,该文件指定了国际化全局资源文件,该文件是Struts 2的属性配置文件。在struts.properties文件编写以下代码。

struts.custom.i18n.resources=messageResource 6.创建JSP页面index.jsp

在Web项目task6-8中创建名为“task6-8.jsp”的JSP页面,该页面用于页面导航的跳转,该页面与之间的代码如表6-35所示。

7.创建JSP页面login.jsp

在Web项目task6-8中创建名为“login.jsp”的JSP页面,该页面用于国际化显示用户登录信息,其主要代码如表6-36所示。 8.创建JSP页面success.jsp

在Web项目task6-8中创建名为“success.jsp”的JSP页面,该页面用于显示用户成功登录的提示信息,其主要代码如表6-37所示。 9.运行程序输出结果

(1)以中文方式显示登录页面和成功登录的提示信息

运行JSP页面index.jsp,显示如图6-17所示的中文登录页面,此时页面的标题为“登录页面”。在该页面的“用户名”文本框中输入“马上好”,在“密码”输入框中输入“123456”,然后单击【登录】按钮,转到success.jsp页面,显示“马上好,欢迎您登录!您的密码是123456。”的提示信息,此时该页面的标题显示为“操作成功页面”。

图6-17 中文登录页面

(2)以英文方式显示登录页面和成功登录的提示信息

打开浏览器窗口,在窗口菜单中选择【Internet 选项】命令,打开如图6-18所示的【Internet 选项】对话框。

在【Internet 选项】对话框中的“外观”区域单击【语言】按钮,打开【语言首选项】对话框,在该对话框添加“英语(美国)[en-US]”语言选项,并上移到第1行,如图6-19所

12

单元6 基于Struts2的Web应用程序开发

示。

在【语言首选项】对话框单击【确定】按钮返回【Internet 选项】对话框,然后在【Internet 选项】对话框中单击【确定】完成语言的添加操作。

重新运行JSP页面index.jsp,显示如图6-20所示的英文登录页面,此时该页面的标题显示为“welcome to login”。在该页面的“用户名”文本框中输入“马上好”,在“密码”输入框中输入“123456”,然后单击【登录】按钮,转到success.jsp页面,显示“马上好,Welcome! Your password is123456。”的提示信息,此时该页面的标题显示为“success page”。

图6-20 英文登录页面

【单元小结】

Struts2是基于WebWork技术开发的全新Web框架,是一种成熟的MVC模型解决方案,在Java Web开发领域中占有十分重要地位,越来越多的Java Web开发人员专注于MVC框架,Struts2爱到了广泛的青睐。本单元通过实例程序的分析与实现介绍MVC设计模式、Struts2的体系结构与工作流程等方面的知识,主要学习了Struts2配置文件、Struts2标签库、Struts2拦截器及数据验证机制的应用。

13

联系合同范文客服:xxxxx#qq.com(#替换为@)