- 浏览: 1068633 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (314)
- java 技术 (45)
- Java Util (3)
- Struts2 学习笔记 (23)
- MySql@数据库 (18)
- Oracle@数据库 (4)
- sqlserver@数据库 (20)
- Hibernate配置及应用 (7)
- 基础学习笔记@javaScript (24)
- 常用应用实例@javaScript (41)
- 网页设计 (20)
- bug (13)
- 总结 (4)
- eclipse应用 (23)
- tomcat设置及问题 (15)
- SWFUplaod学习笔记 (7)
- C# (5)
- PPT经验技巧 (8)
- 心情随笔 (3)
- 其他 (19)
- jquery (4)
- sping (1)
- json相关 (2)
最新评论
-
流年已逝_奋斗不止2013:
很有用,谢谢!
HQL select 总结 -
qq_31945283:
完美解决了我的难题,谢谢
四、struts2+swfUpload例子二 -
qq_31945283:
...
四、struts2+swfUpload例子二 -
sunbingrun:
集成到我的项目里, 居然post_params: {&quo ...
三、struts2+swfUpload简单例子 -
flyarun:
牛B ,这种人就是我的偶像
四、struts2+swfUpload例子二
这段时间重新开始拾起JAVA的学习,也是为了以后的工作打算,积累一些经验。
记得开始的时候,学习Struts2中的输入校验,就对Vistor校验器情有独钟。首先,一般我们在提交表单的时候,对表单的各字段就要有校验的过程,实际部署过程中要分 客户端校验 和服务器端校验。 客户端校验使用rapid validation等第三方客户端校验框架就可以实现,而且比Struts2本身自带的客户端校验方式更好,但服务器端校验却可以分为好几种:
1.如果在Action中只有一个处理逻辑的话,可以重写ActionSupport中的validate()方法。
2.如果在Action中存在多个类似于execute的处理逻辑的话,我们可以重写validateXxx()方法(Xxx为不同的处理逻辑名称,例如有validateRegist()方法,就是处理Regist业务逻辑)
3.编写对应于Action的validate 的xml文件。这个应该是最为常用的一种解决方案了,但是有一个问题,Action众多,或者在Action中有多个对应一个或多个POJO的处理逻辑,那么这些xml文件就会随着Action文件和处理逻辑的增加而相应的增加,这显然不是个好的现象。 所以如果只是针对POJO来写相应的validate xml文件,无疑会好很多。 这就是Visitor校验器的功用了。
很多和我一样的初学者可能手边都有一般李刚写的 《Struts 2 权威指南》,里面正好讲了visitor校验器,但是我照着书上讲的步骤重复做了N次都没有正确,于是乎在网上搜索了相关的文章,最后终于发现书上没有讲完整 (P280-P281)
以下我来举个例子:
我建立了一个User的POJO,处理逻辑为UserAction, 测试页面为login.jsp
那么我的Visitor校验器为
UserAction-validation.xml
-------------------------------------------------------------------
(注:context参数可以随便设置,只要保持一致就可以了)
-------------------------------------------------------------------
User-userContext-validate.xml
其中context参数将作为验证[img][/img]User类属性的文件名的一部分,如user属性返回一个User对象,那么用于验证User对象属性的文件名为User-abc-validation.xml。
这个文件要和User.class文件在同一个目录中。也就是要放到你的POJO文件相同的目录路径下,不然的话Visitor校验器就不会起作用。
这个就是李刚老师没有写全的地方,附加个项目截图就更为清楚了。
这样的话,Visitor校验器就起作用了。
记得开始的时候,学习Struts2中的输入校验,就对Vistor校验器情有独钟。首先,一般我们在提交表单的时候,对表单的各字段就要有校验的过程,实际部署过程中要分 客户端校验 和服务器端校验。 客户端校验使用rapid validation等第三方客户端校验框架就可以实现,而且比Struts2本身自带的客户端校验方式更好,但服务器端校验却可以分为好几种:
1.如果在Action中只有一个处理逻辑的话,可以重写ActionSupport中的validate()方法。
2.如果在Action中存在多个类似于execute的处理逻辑的话,我们可以重写validateXxx()方法(Xxx为不同的处理逻辑名称,例如有validateRegist()方法,就是处理Regist业务逻辑)
3.编写对应于Action的validate 的xml文件。这个应该是最为常用的一种解决方案了,但是有一个问题,Action众多,或者在Action中有多个对应一个或多个POJO的处理逻辑,那么这些xml文件就会随着Action文件和处理逻辑的增加而相应的增加,这显然不是个好的现象。 所以如果只是针对POJO来写相应的validate xml文件,无疑会好很多。 这就是Visitor校验器的功用了。
很多和我一样的初学者可能手边都有一般李刚写的 《Struts 2 权威指南》,里面正好讲了visitor校验器,但是我照着书上讲的步骤重复做了N次都没有正确,于是乎在网上搜索了相关的文章,最后终于发现书上没有讲完整 (P280-P281)
以下我来举个例子:
我建立了一个User的POJO,处理逻辑为UserAction, 测试页面为login.jsp
<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>用户登录页面</title> <style type="text/css"> .errorMessage { font-weight: bold; color: red; } </style> </head> <body> <s:form action="pro_login.do"> <s:textfield name="user.username" label="用户名称" /> <s:password name="user.userpwd" label="登录密码" /> <s:submit value="登 录" /> </s:form> </body> </html>
那么我的Visitor校验器为
UserAction-validation.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators> <field name="user"> <field-validator type="visitor"> <param name="context">userContext</param> <param name="appendPrefix">true</param> <message></message> </field-validator> </field> </validators>
-------------------------------------------------------------------
(注:context参数可以随便设置,只要保持一致就可以了)
-------------------------------------------------------------------
User-userContext-validate.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators> <field name="username"> <field-validator type="requiredstring"> <message>请输入用户名称</message> </field-validator> </field> <field name="userpwd"> <field-validator type="requiredstring"> <message>请输入登录密码</message> </field-validator> </field> </validators>
其中context参数将作为验证[img][/img]User类属性的文件名的一部分,如user属性返回一个User对象,那么用于验证User对象属性的文件名为User-abc-validation.xml。
这个文件要和User.class文件在同一个目录中。也就是要放到你的POJO文件相同的目录路径下,不然的话Visitor校验器就不会起作用。
这个就是李刚老师没有写全的地方,附加个项目截图就更为清楚了。
这样的话,Visitor校验器就起作用了。
发表评论
-
struts2中各个jar包作用
2017-07-07 11:37 711Struts2.3.4 所需的Jar包及介绍 J ... -
struts2标签的默认主题
2017-05-08 11:46 726Struts2默认的theme是xhtml,这可以从Strut ... -
struts2 漏洞分析与防护方案 CVE-2017-5638 S2-045 除了升级外还是有修复方案的
2017-03-23 10:52 989【IT168 评论】关注网络 ... -
struts2 date标签(数据标签)
2015-11-02 13:43 956date标签: date标签 用于格式化输入一个日期,还可以计 ... -
struts2中if标签中字符串比较的正确写法
2013-01-09 13:40 3028错误写法: <s:if test="aStri ... -
struts2 <s:iterator>遍历Map的多种方法
2012-12-11 13:18 26355struts2 遍历Map的多种方法 主要针对以下几种情况 ... -
struts2 标签 (取)保留几位小数(保留2位小数、保留4位小数)、日期类型转换处理方
2012-08-12 11:34 5302一、Struts2 国际化配置文件中添加如下配置: #保留两位 ... -
struts2的几种选择标签
2011-05-04 11:46 2161学习struts2已经很长时间了,一直觉得他的标签很好用,下面 ... -
struts2 标签 页面数据处理
2009-08-25 12:56 18141、输出session中的值 a. <s:prop ... -
struts2 optiontransferselect标签使用中的问题
2009-08-09 15:28 5231struts2 的优点之一便是 ... -
struts2+spring+hibernate整合配置
2009-04-22 10:24 1883struts2+spring+hibernate 配置: 1 ... -
struts2+spring+hibernate整合时所需的jar包
2009-02-17 09:13 14413struts2.1.6 支持jar包 xwork-2.1 ... -
关于Struts2的文件上传
2008-09-03 11:36 3895在使用struts处理文件上传的时候往往会遇 ... -
Struts2插件
2008-06-21 16:23 2151Struts2插件 从理论上讲,Struts ... -
struts2配置-struts.pro
2008-06-21 16:22 1597struts.properties配置文件 ... -
struts2配置-struts.xml
2008-06-21 16:17 4288struts.xml配置文件 Struts ... -
Struts2的基本配置-web.xml
2008-06-21 16:12 6385Struts 2的基本配置 前面大致了解了Str ... -
Struts2的基本流程
2008-06-21 16:05 3298大致上,Struts 2框架由3 ... -
在eclipse中开发Struts2
2008-06-21 16:04 4034创建web应用(使用MyEclipse) 一、在Eclips ... -
创建Web应用
2008-06-21 15:57 1386!!提醒 对于IDE工具,业内有一个说法:IDE工具会加快高 ...
相关推荐
struts2中Visitor校验器以及域对象级别上验证和使用上下文优化的使用,我自己写的一个完整代码,详细的展示了如何使用Visitor校验器以及怎样在域对象上验证和注意事项,代码解压后可以直接部署到MyEclipse上运行,...
在探讨Struts2校验器之前,我们首先需要了解这些校验器是如何被定义和集成到框架中的。如文中所述,Struts2的内建校验器主要位于`xwork-2.0.4.jar`压缩包中的`default.xml`文件里。这个文件定义了一系列常用的数据...
以上内容详细介绍了Struts2框架的核心组成部分和技术细节,包括Action的实现方式、Result的配置方法、模型驱动的概念、异常处理机制、类型转换的实现、输入校验的流程、拦截器的设计与应用以及日志记录的配置。...
除了基本的手动编程和框架内置验证外,Struts2还支持更高级的数据验证用法,如自定义校验器和visitor校验器的应用方法等。 1. **自定义校验器**: - 可以通过扩展Struts2提供的校验器类来自定义验证规则。 - 适用...
Struts2的核心特性之一就是其强大的验证机制,该机制允许开发者在请求到达控制器之前对用户输入进行检查,确保数据的完整性和正确性,从而避免潜在的运行时错误或安全漏洞。 ### Struts2验证框架的关键属性和语法 ...
9.2 Struts中的国际化支持 185 9.3 text标签 188 9.4 i18n标签 191 9.5 以手动方式选择一个资源包 193 9.6 小结 195 第10章 Model Driven和Preparable拦截器 196 10.1 把动作与模型隔离开 196 10.2 Model ...
struts2.1.6 convertion插件(即注释方式配置)的helloworld 默认调用index()方法 文档说明用struts.xml中标签设置值,好象不用也行 rest插件例子 默认调用 create()方法 struts2.1.6 vistor校验例子 都是我测试例子,...
Struts2中的错误处理机制主要通过`addFieldError`方法实现,该方法用于在表单验证失败时添加错误信息到用户界面。例如: ```java // 添加字段级别的错误信息 addFieldError("username", "用户名不能为空"); ``` 这...
- **关于Struts2中visitor校验器的解决方法**:针对Struts2框架的验证机制,特别是visitor校验器的使用方法和常见问题的解决方案。 3. **其他技术** - **g1安装Android软件详细攻略**:为Android开发者提供了...
本文将详细介绍Struts2验证框架的配置方法以及validation.xml文件中常用的验证规则。 ### 验证框架的配置 在Struts2中,验证主要通过在Action类的关联配置文件validation.xml中定义规则来实现。该文件通常与Action...
在`Demo18_Visitor`中,可能存在`ConcreteVisitorA`和`ConcreteVisitorB`这样的类,它们分别实现`Visitor`接口中的方法,执行不同的操作。 3. **元素接口(Element)**: 元素接口定义了一个接受访问者的接收方法...
2. 定义元素接口或类,通常会有一个`accept(Visitor)`方法,接收访问者并调用相应的访问方法。 ```java public abstract class Element { public abstract void accept(Visitor visitor); } public class Employee...
9.2 Struts中的国际化支持 185 9.3 text标签 188 9.4 i18n标签 191 9.5 以手动方式选择一个资源包 193 9.6 小结 195 第10章 Model Driven和Preparable拦截器 196 10.1 把动作与模型隔离开 196 10.2 Model Driven...
Visitor模式是设计模式中的一种行为模式,它在对象结构中引入了一个访问者角色,使得访问者能够对结构中的每个元素进行操作,而不改变元素本身的行为。这种模式允许我们在不修改已有类的情况下增加新的操作,遵循了...
控制器方法可以接收请求并更新数据库中的访问记录。 3. **模型** (app/Models/): 创建一个 `Visitor` 模型,用于代表数据库中的访问记录。模型将与数据库表关联,提供插入、更新和查询数据的方法。表可能包含如 `...
"设计模式系列之visitor"是一个关于软件设计模式的讨论,特别是关注于“访问者”(Visitor)模式。这个模式是GOF(Gamma, Helm, Johnson, Vlissides)在他们的经典著作《设计模式:可复用面向对象软件的基础》中提出...
"Visitor" 在IT行业中可能指的是一个设计模式,即“访问者模式”。访问者模式是一种行为设计模式,它允许我们定义一种在多种不同对象结构中访问、改变或增加新行为的操作方式,而无需改变这些对象的结构。这个模式的...