Struts应用技术深入2

上传人:t****d 文档编号:243124611 上传时间:2024-09-16 格式:PPT 页数:23 大小:336KB
返回 下载 相关 举报
Struts应用技术深入2_第1页
第1页 / 共23页
Struts应用技术深入2_第2页
第2页 / 共23页
Struts应用技术深入2_第3页
第3页 / 共23页
点击查看更多>>
资源描述
在本讲您能了解如下知识点,扩展,Struts,以开发,Struts,的插件,多个表单对应一个,ActionForm,类,DynaActionForm,类技术,对,DynaActionForm,类进行定制,如何处理包含日期类型表单,Struts,中的异常处理机制,DispatchAction,类的使用,Strust应用技术深入(2),1、扩展Struts系统,(1)Struts的可扩展性,由于在实际应用中,一定会有一些特定的应用需求是框架的设计者们无法预见到的,因此框架的设计者则应该允许框架使用者对框架进行扩展,(2)扩展Struts系统的几种方式,PlugIn,技术:,如果我们想在,Web,应用启动或终止的时候做一些业务逻辑的话,那就创建我们自己的,PlugIn,类。,继承,RequestProcessor,类,可以实现对请求进行验证,从而可以代替Filter的功能,继承,ActionServlet,类,2、开发Struts的插件实现扩展Struts,(1)Struts插件,Struts提供了一个PlugIn接口,利用用它来创建在Web应用启动时就需要的初始化定制服务。,(2)应用的场合,当希望所扩展的功能能够与Struts系统平台融合在一起,并且在容器启动时就希望加载该扩展的组件,可以实现对请求进行一般的转换,从而也可以代替Filter的功能,(3)Struts插件的类型,第三方的,Struts,插件,用户自定义的,Struts,插件,(4)Plugin接口说明-init() 和destory()方法,(5)插件的生命周期方法的执行过程,在,struts,应用程序启动的时候,,ActionServlet,通过,init(),方法实例每一个,Plugin,。,可以在,init(),方法中放一些需要初始化的东西。,对于,destory,(),方法它将在你的应用程序结束时调用,(6)编程Struts插件的Java类步骤,编程,Java,类,-,请见文档,示,例,在,struts-,config.xml,中部署该,plugin,插件,(7)标签中的子标签,通过使用,Struts,的另外一个特征,即,set-property,元素,你可以将特殊的信息传递到,plug-in,中。,这种能力增强了这些类的灵活性,(8)Plugin插件的应用实例:,在Web应用中的公共参数的问题,详细的实现细节请见文档。,2、创建和多个表单相对应的ActionForm,(2)目的,减少ActionForm 组件的个数,从而避免重复单调地编程;因为多个表单可能会有重复的数据项目-如在用户登录表单和注册表单中都包含有“用户名称”和“密码项目”。,(3)所应该解决的问题,如何在ActionForm组件中识别当前是那个表单在产生提交,从而对与该表单相对应的数据项目进行,validate(),操作。,(1)页面中的Form表单与ActionForm之间的对应关系,一般可以为每个表单提供一个,ActionForm,(,一对一),当然也可以为多个不同的表单提供一个共同的,ActionForm,组件(一对多),(4)解决的方法,通过在每个表单中放入一个hidden字段来标示,(5)该方法的基本原理,在,html,的表单中提供了,控件,利用它进行传递数据;,因为,每当表单进行提交时,其数据值也会传递到服务器端。这样我们只需要识别该字段得,值,也就了解了是那个表单提交,您知道该表单域有什么特点吗?,3、DynaActionForm类(虚拟ActionForm技术),(1)ActionForm类的主要作用,利用,ActionForm,类来包装,HTML,表单中的数据,从而以面向对象的方式进行表单的数据操作,同时还可以在,ActionForm,类中通过重写,reset,和,validate,方法以实现对表示层表单中的用户输入的数据进行复位和验证,(2)ActionForm类及其所存在的问题,对于大型的,Struts Web,应用项目,由于有大量的表单存在,从而需要针对每一个表单设计出对应的,ActionForm,类组件,-,最终会产生大量的表单对象!,另外它与表单相绑定,因此如果在,HTML,表单中的某一字段发生变化,则必须修改并重新编译对应的,ActionForm,组件类。,(3)解决的方法,为了减少编程实现所带来的不灵活性和减少表单与ActionForm组件之间的藕合性,Struts系统中提供了DynaActionForm类技术,(4)DynaActionForm类的基本原理,DynaActionForm,类(它是,ActionForm,类的子类),因此保留了原来的,ActionForm,类的,所有功能,创建的方法,在,struts-,config.xml,配置文件中针对每一个,HTML,表单以配置的方式配置出所需的虚拟,ActionForm,组件,(5)配置实现虚拟ActionForm的主要步骤,配置一个,标签元素并将其,type,属性数值为,DynaActionForm,类或者它的某个子类,在,标签元素内针对,HTML,表单中的每个字段提供一个,标签元素以声明该字段的名称和数据类型,通过在,标签中提供,initial,属性来为每个字段提供初始值,(6)在Action类中获得属性字段的值,与,ActionForm,的访问方法不同点,如果使用,DynaActionForm,,,系统将各个属性成员保存在一个,HashMap,类对象中,因此应该采用,get(“name”),和,set(“name”),方法来访问成员属性(其中参数,name,是要访问的,HTML,表单中的属性名),示例代码,(1)技术背景,采用了,DynaActionForm,类,后,由于不再存在了具体的组件类代码,因此也无法再提供,reset(),和,validate(),方法,从而也丧失了原来在,ActionForm,中的对表单中的数据提供的验证手段,(,2,)解决的方法,为了既能够减少对,ActionForm,组件的编程,同时也还能够继续提供数据验证,可以采用,对,DynaActionForm,类进行定制,4、对DynaActionForm类进行定制,(4)代码示例,(3)实现的步骤,编程实现自己的,DynaActionForm,类并重写,reset,方法,同时也重写,validate(),方法以编程实现数据验证,在,struts-,config.xml,文件中的,标签中配置指定自己的,DynaActionForm,类,(5)在struts-config.xml文件中的标签中配置指定自己的,DynaActionForm类,6、DispatchAction类的使用,(1)其作用,主要是用于分发的Action;其主要的好处是把一些功能类似的Action放到一个Action类中,从而减少Action类的个数。,(2)org.apache.struts.actions.DispatchAction类,注意它也是从Action类继承,(3),实现的方法(参考UserLogin),设计一个表示层页面,设计完成上面的两个功能的,DispatchAction,类,在,struts-,config.xml,文件中进行,DispatchAction,类的配置,执行该,Web,应用,注意methodName与前面的URL中的参数名称相同,7、Struts中的异常处理机制和技术,(1)Java语言中的异常处理,系统级异常,-,与应用的逻辑无关,需要由系统平台提供商的开发者来处理该类异常,应用级异常,-,由于用户违背了商业业务逻辑而导致的错误,这种错误一般不是致命的,(2),异常处理的基本原则,要注意不要让用户看到原始的,Java,异常信息,对此原则在前面的Web编程技术时也已经提及!,可以将原始的,Java,异常信息记录到日志文件中,在控制层或者表示层的组件中捕获用户自定义的异常,您觉得这样的方式有什么问题吗?,(3)在Struts的Web系统中异常处理的方式,编程方式进行异常处理,对于异常的处理,主要是采用,try/catch,等等捕获异常,然后定制个性化的比较详细的错误信息放进,ActionError,中,然后在具体的返回页面中把这些错误信息反馈给用户(包括开发员)。,不可避免地会产生硬编码的后果,增强了与错误信息的藕合度,以配置的方式进行异常处理,要定义应用程序的逻辑流程,成熟的经验是推荐在代码之外,用配置的方法来实现,而不是硬编码地方式写死在程序代码中的,此种方法在对错误的信息、跳转的目标地址和错误处理的页面等方面都具有较好的灵活度,(4)创建用户的自己异常处理类,目的:定制个性化的比较详细的错误信息,(5)与异常设置相关的标签-全局异常的设置,对所有的Action都可以适用,示例代码:请见文档,(6)与异常设置相关的标签-局部异常的设置,只对本Action适用,指定错误提示文字的资源字符串文件中的key名称,1、子曰:“学而不思则罔,思而不学则殆。”,“学而时习之”,2、,子曰:“知之者不如好之者,好之者不如乐之者”,3、子曰:“三人行,必有我师焉”,4、,子曰:“我非生而知之者,好古,敏以求之者也”,5、,师者:“传道、授业和解惑”,努力学习以实现自己的人生理想和目标,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!