



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
validate方法validate方法有三种来源,分别继承自ActionForm, ValidatorForm, ValidatorActionForm不同点:(1).继承自ActionForm的FormBean,必须覆基类ActionForm的validate()方法,仅能做服务器端检验。需要在struts config.xml中配置中,Action一定要将validate属性设置为validate=true“. 不是Struts Validator框架,也不需要配置文件信息。(2).继承自ValidatorForm 或 ValidatorActionForm 的FormBean,是Struts Validator框架。可以做服务器端检验,也可以通过生成JavaScript的方式实现客户端检验。(3).作为Struts Validator框架, 必须不能覆盖基类的validate()方法。即必须使用基类的validate()方法,才能保证错误验证正常进行。否则就会屏蔽掉在Validation.xml中定义的验证部分,在系统运行时,validation.xml里对应此FormBean定义的错误验证部分不执行。(4).作为Struts Validator框架,需要validator.xml 和 validator-rules.xml 配置文件,无论是服务器还是客户端验证。服务器端验证:validate=true“。客户端验证:validate=false“(5).ValidatorForm 和 ValidatorActionForm 的区别。=一、在对应的Form Beans中重载validate方法在struts-config.xml文件中,action节点下有“validate”这样一个属性。在struts框架中,默认属性是validate=”true”。所以如果想通过Form Baens的重载validate方法来验证数据的话,可以不用理会这一点。题外话:如果你在struts-config.xml文件中,设置validate=false的话,validate方法将不起作用。这一点同样对Validate框架来验证数据起作用。二、通过Validator框架来验证数据1、配置struts-config.xml文件,增加:2、配置validation.xml文件 -这里的userForm是Form Beans的名字 以上是通过validatorForm- or DynaValidatorForm来实现Validate验证的现在有这样一个问题,Form Beans可以被多个Action应用,而每个Action可能需要的验证字段都不一样。而在validation.xml中配置的验证方式(如)是对这个Form Beans进行的。于是,Form Beans可以继承ValidatorActionForm(当然可以直接配置DynaValidatorActionForm)。如下所示:validation.xml文件配置如下:-这里的采用的是action的path路径 三、结合上面的两种验证如果即在Form Beans中重载了validate方法,又启用了Validate框架,那会是什么效果呢?由于要启用Validate框架,FormBeans需要继承ValidatorForm,查看ValidatorForm的源代码,发现validate方法已经作了处理(真是为Validate框架所服务的)。那么在Form Beans中重载了validate方法的话,就会覆盖原有ValidatorForm中对应的功能,所以如果想一起用的话,需要在Form Beans的validate方法中调用errors = super.validate(mapping, request);这句代码是启用Validate框架所要做的工作,然后可以判断errors再作下一步的处理。当然也可以先做Form Beans中的validate方法,然后启用Validate框架,要看具体情况而定。四、启用客户端验证也是结合validation.xml来验证的在需要客户端验证的jsp中加上这么一句 其中formName就是validation.xml中所对应的内容在html:form中追加一个属性onsubmit=return validateUserForm(this);它的语法为:return validate + struts-config.xml中定义的form-bean名称 + (this);比如:追加onsubmit=return validateUserForm(this);=formset 可以含有language, country 等属性对应java.util.Locale classformset 配置: form name:对应的表单name,必须与 中formName属性以及struts-config中ActionForm名称相同。 /depends是validator-rules.xml中的规则名称name /错误信息参数,错误信息文件由message-resources标签指示。参数最多4个 /resource=false说明直接以key的值作为值,而不到message-resources文件中查找对应值 /var为下面定义的变量 maxlength /变量名 16/变量值 minlength 3 idcardlength 15 hibernate的缓存机制.缓存是位于应用程序与物理数据源之间,用于临时存放复制数据的内存区域,目的是为了减少应用程序对物理数据源访问的次数,从而提高应用程序的运行性能. Hibernate在查询数据时,首先到缓存中去查找,如果找到就直接使用,找不到的时候就会从物理数据源中检索,所以,把频繁使用的数据加载到缓存区后,就可以大大减少应用程序对物理数据源的访问,使得程序的运行性能明显的提升.Hibernate缓存分为二级,第一级存放于session中称为一级缓存,默认带有且不能卸载。第二级是由sessionFactory控制的进程级缓存。是全局共享的缓存,凡是会调用二级缓存的查询方法 都会从中受益。只有经正确的配置后二级缓存才会发挥作用。同时在进行条件查询时必须使用相应的方法才能从缓存中获取数据。比如Query.iterate()方法、load、get方法等。必须注意的是session.find方法永远是从数据库中获取数据,不会从二级缓存中获取数据,即便其中有其所需要的数据也是如此。查询时使用缓存的实现过程为:首先查询一级缓存中是否具有需要的数据,如果没有,查询二级缓存,如果二级缓存中也没有,此时再执行查询数据库的工作。要注意的是:此3种方式的查询速度是依次降低的因为Session的生命期往往很短,存在于Session内部的第一级最快缓存的生命期当然也很短,所以第一级缓存的命中率是很低的。其对系统性能的改善也是很有限的。当然,这个Session内部缓存的主要作用是保持Session内部数据状态同步。并非是hibernate为了大幅提高系统性能所提供的。为了提高使用hibernate的性能,除了常规的一些需要注意的方法比如:使用延迟加载、迫切外连接、查询过滤等以外,还需要配置hibernate的二级缓存。其对系统整体性能的改善往往具有立竿见影的效果!(经过自己以前作项目的经验,一般会有34倍的性能提
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年ACCA国际注册会计师考试真题卷:企业风险管理试题(含答案)
- 2025小升初语文测试题及答案
- (2025)中小学生心理健康知识竞赛题库及参考答案
- 2025护师考试基础护理学练习题及答案
- (2025)学法用法考试题及答案
- 物联网技术试题及答案
- 技术文员考试试题及答案
- 2025年压力管道巡检维护证考试题库
- 2025电气设备购销合同范本
- 2025计算机硬件购销合同
- 《向长庚医院学管理》读后感
- 《建筑防水工程技术规程》
- DB11-T 1754-2024 老年人能力综合评估规范
- 《献给阿尔吉侬的花束》读书分享
- 电力项目全过程咨询服务方案
- T-CASME 1610-2024 淤泥土固化加固与处置技术规程
- 商用汽车金融方案
- 医药行业生产成本管控方案
- 上海市崇明区九校2024-2025学年六年级(五四制)上学期期中英语试题
- 预拌混凝土试验室作业指导书(完整版)
- 2024年10月自考00312政治学概论试题及答案含评分参考
评论
0/150
提交评论