Struts应用helloapp_第1页
Struts应用helloapp_第2页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 / 15商品内容:1. 分析 helloapp 应用的需求接受用户输入的姓名,然后返回字符串Hello! 。如果用户没有输入姓名就提交表单,将返回出错信 息,提示用户首先输入姓名。如果用户输入姓名为 Monster ,将返回出错信息, 拒绝向 Monster 打招呼。2.运用 Struts 框架模型包括一个 JavaBean 组件 PersonBean,它有一个userName 属性,代表用户输入的名字。它提供了 get/set方法, 分别用于读取和设置userName属性, 它还提供一个 save()方法,负责把 userName 属性保存到持久化存储系统 中,如数据库或文件系统。对于更

2、为复杂的We 应用,JavaBean 组件可以作为 EJB 或 We 服务的前端组件。视图包括一个 JSP 文件 hello.jsp ,它提供用户界面, 接受用户输入的姓名。视图还包括一个 ActionForm Bean , 它用来存放表单数据,并进行表单验证,如果用户没有输 入姓名就2 / 15提交表单,将返回出错信息。控制器包括一个 Action 类 HelloAction ,它完成三 项任务: 1进行业务逻辑验证,如果用户输入的姓名为 Monster,将返回错误消息; 2调用模型组件PersonBean 的 save()方法,保存用户输入的名字; 3.决 定将合适的视图组件返回给用户。除

3、了创建模型、视图和控制器组件,还需要创建Struts 的配置文件 struts-config.xml ,它可以把这些组 件组装起来, 使它们协调工作。 此外,还需要创建整个 Web 应用的配置文件 web.xml 。3. 创建视图组件本例中,视图包括两个组件:一个 JSF 文件:hello.jsp一个 ActionForm Bean :HelloForm Bean (HelloForm.java) 。其中, jsp 中有代码 3 / 15当用户提交了 HTM 表单后,Struts 框架将自 动把表单数据组装到 ActionForm Bean 中。 ActionFormBean 中的属性和 HT

4、M 表单中的字段对应。 ActionFormBean 还提供了数据验证方法,以及把属性重新设置为默认 值的方法。 Struts 框架中定义的 ActionForm 类是抽象的, 必须在应用中创建它的子类,来存放具体的HTM 表单数据。HelloForm.java 中有两个特殊的方法:validate。:用于表单验证。reset():把属性重新设置为默认值。本例中的资源文件是 perties , 用来存放数据信息。4. 创建控制器组件: HelloAction.java控制器组件包括 ActionServlet 类和 Action 类。ActionServlet 类

5、是 Struts 框架自带的,它是整个 Struts 框架的控制枢纽,通常不需要扩展。 Struts 框架提供了可 供扩展的Action 类,它用来处理特定的 HTTP#求。4 / 15所有的 Action 类都是org.apache.struts.action.Action 的子类, Action 子类 应该覆盖父类的 execute() 方法。HelloAction.java 的代码如下:package hello;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRespon

6、se;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping; importorg.apache.struts.action.ActionMessage; importorg.apache.struts.action.ActionMessages; importorg.apache.struts.util.

7、MessageResources; importcom.yourcompany.struts.PersonBean; importcom.yourcompany.struts.form.HelloForm; /* struts.action path=/hello name=helloForminput=/form/hello.jsp scope=request validate=true5 / 15*/public final class HelloAction extends Action * Method execute* param mapping:ActionMapping 包含了这

8、个 Action 的 配置信息和 Struts-config.xml 文件中的 元素对应。* param form:ActionForm 包含了用户的表单数据, 当 Struts 框架调用 execute() 方法时, ActionForm 中的数据* 已经通过了表单验证。*paramrequest:HttpServletRequest 当前的 HTT 请求 对象* param response:HttpServletResponse 当前的 HTTP 响应对象* return ActionForward*/public ActionForward execute(ActionMapping

9、mapping,ActionForm form,HttpServletRequest request,6 / 15HttpServletResponse response) throws Exception/* These massage come from theApplicationRperties file* getResources(HttpServletRequest request) 方法返回当前默认的 MessageResource 对象,它圭寸装了 Resource*Bundle 中的文本内容。*接下来 Action 类就可以通过 MessageReso

10、urce 对象来访问文本内容。例如:如果要读取消息 key*为hello.jsp.title 对应的文本内容,可以调用MessageResources 类的 getMessage(Stri ng key) 方法:*String title=messages.getMessage(hello.jsp.title);* MessageResources messages=getResources(request);*/*Validate the request parameters specified by theuser7 / 15* Note: Basic field validation d

11、one inHelloForm.java* Business logic validation done inHelloAction.java* 如果用户输入的姓名为 Monster ,将创建包含错误 信息的AcrionMessage 对象, ActionMessage 对象被保存* 到 ActionMessages 对象中。接下来调用在 Action 基类 中定义的 saveErrors() 方法,它负责把 ActionMessages* 对象保存到 request 范围内。最后返回 ActionForward 对象,Struts 框架会根据 ActionForward 对象包含的转发* 信

12、息把请求转发到恰当的视图组件,视图组件通过 标签把 request 范围内的 ActionMessages 对象* 中包含的错误消息显示出来,提示用户修改错误。* */ActionMessages errors=new ActionMessages();String userName=(String)(HelloForm)form).getUserName();8 / 15String badUserName=Monster;if(userName.equalsIgnoreCase(badUserName)/equalsIgnoreCase 方法同 vequals , 只不过 equalsIgnoreCase是忽略大小写。errors.add(username,newActionMessage(hello.dont.talk.to.monster,badUserName) );saveErrors(request,errors);return (newActio

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论