课件:属性值的填充.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【RegAction2】 配置 测试运行 当框架调用Action组件时,如果发现Action组件实现了ModelDriven接口,将调用它的getModel()方法,向框架返回一个数据模型对象,并将它放到ValueStack(值栈)的顶部。 ValueStack是框架中存放一次请求过程中的处理数据的内存区域。 如果用户请求中包含请求参数,比如:username,则框架会在ValueStack中从栈顶开始查找有没有一个对象包含setUsername()方法,如果有,则将参数值传给这个对象 在JSP中可以通过OGNL技术获取对象中的数据 s:property value=username/ 小结 获取Web请求参数的方法 简单类型属性自动填充 复杂类型属性自动填充 基于模型驱动的请求参数获取 作业 1、采用Action组件复杂类型属性自动填充的方法,实现用户注册信息的自动获取。 2、采用基于模型驱动的方法,实现用户注册信息的自动获取 THANK YOU SUCCESS * * 可编辑 可编辑 可编辑 Struts2 框架概述 本讲要点与教学目标 【教学要点】 1、Action组件基本类型属性的自动填充 2、Action组件复杂类型属性的自动填充 3、基于模型驱动的自动填充 【教学目标】 了解Action三种接收请求参数的方法,掌握基于模型驱动的Action属性的自动填充。 Action自动获取Web请求参数 1.基本类型(包括String类型)属性自动填充 2.基于模型的引用类型属性自动填充 3.基于模型驱动的引用类型属性自动填充 Action是对Web请求进行处理的组件,获取Web请求参数是Action的首要任务。 Servlet中通过请求对象的getParameter()方法获取,然后进行类型转换才能使用。 Action可以自动获取Web请求参数,其方法有三种: Action基本类型属性的自动填充 【说明】 1、实现自动填充的功能的是由拦截器实现的 2、拦截器进行参数自动填充的过程(以username为例) 拦截器发现请求参数中有username,则会在Action组件中寻找名为setUsername()的方法,通过该方法把参数值填充到Action组件中 【注意】 拦截器并不是根据参数名与Action组件中私有变量名进行映射的,框架在存取Action的属性时只与set和get方法有关。Action属性名实际上是setXxx()和getXxx()对应的xxx名。 【分析案例中创建LoginAction】 Struts2框架自动将用户提交的username和password填充到Action组件中 Action组件对引用类型属性的自动填充 【问题】 如果请求中提交的信息很多(如:用户注册页面),如果采用直接填充的方式,则造成Action组件的混乱臃肿,违背软件设计“高内聚”原则 【解决方案】 Struts2框架支持对复杂对象属性自动填充 Action组件对引用类型属性的自动填充 案例1:复杂对象属性自动填充-用户注册 要求 用户通过注册表单填写用户名、密码、真实姓名、出生日期、Email信息,提交Action处理,如果用户名为空,则返回注册页,否则转到注册成功页,显示注册信息。 基本思路 创建视图: 用户注册页-regist.jsp 注册成功页-regsuccess.jsp 创建JavaBean类User(数据模型) 创建RegAction,定义User类型的属性,execute()中对获取的数据进行处理 配置运行 案例2:复杂对象属性自动填充-用户注册 【注册页-regist.jsp】 【注册成功页-regsuccess.jsp】 【JavaBean类User】 package zzu.edu.cn.action; import java.util.Date; public class User { private String username; private String password; private String email; private String realname; private Date birthday; //此处省略setter和getter方法 } 【RegAction】 THANK YOU SUCCESS * * 可编辑 基于模型驱动获取请求信息 【问题】 1.Struts2虽然支持复杂对象属性自动填充,但必须使用OGNL的点运算,给程序开发带来不便 2.前两种方法都是将业务数据填充到Action组件,使业务信息和

文档评论(0)

iuad + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档