`
esffor
  • 浏览: 1371183 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Webwork验证框架(含自定义验证规则)

阅读更多

Action:

 

package ch13.example1;

import com.opensymphony.xwork.ActionSupport;
import com.opensymphony.xwork.Validateable;

public class Test extends ActionSupport...{



    
private User user;
    
    
    
public User getUser() ...{
        
return user;
    }

    
public void setUser(User user) ...{
        
this.user = user;
    }

    
public String execute() throws Exception ...{
        
return SUCCESS;
    }




    



}

JavaBean

 

package ch13.example1;

public class User ...{
   
private double salary;
   
private int age;
   
private String name;
public int getAge() ...{
    
return age;
}

public void setAge(int age) ...{
    
this.age = age;
}

public String getName() ...{
    
return name;
}

public void setName(String name) ...{
    
this.name = name;
}

public double getSalary() ...{
    
return salary;
}

public void setSalary(double salary) ...{
    
this.salary = salary;
}





}

 JSP:

 

<%...@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding
="GB18030"
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%...@ taglib uri="webwork" prefix="ww"%>
<%...@ page import="java.util.*" %>
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<ww:form action="testValidate">
 
  
<ww:textfield label="salary" name="user.salary"/><br>
  
<ww:textfield label="name" name="user.name"/><br>
  
<ww:textfield label="age" name="user.age"/><br>
   
<ww:submit value="update user"/>
</ww:form>

</body>
</html>

 

准备工作已经做好了,下面我们要做的就是对name字段进行验证,

验证分两种情况
(1)不能为空,使用webwork预置验证规则
(2)输入内容必须为"gaoxiang" 这部分使用自定义规则

首先,在Test Action包内建立验证规则,命名为Test-validation.xml

其中resquiredstring规则为webwork预置,另一个是自定义规则

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
          "-//openSymphony Group//XWork Validator 1.0//EN"
          "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"
>
<validators>
<field name="user.name">
  
  
   
<field-validator type="requiredstring">
     
<message>name required</message>
   
</field-validator>

   
   
<field-validator type="myValidator">
     
<message>name not equal gaoxiang</message>
    
</field-validator>

  
</field>
</validators>

在classpath下建立validation.xml

需要说明的是,webwork的jar包中已经包含了validation.xml(2.2.4版本中在xwork.jar中,叫default,xml)

我们并不需要额外建立validation.xml就可以使用这些规则,但我们自定义的规则必须建立validation.xml并在其中

定义,但如果classpath下有了我们自己建立的validation.xml,webwor预置的那些规则就失效了,所以,我们要把webowork预置的那些规则复制到我们建立的validation,xml中,代码如下:

 

<?xml version="1.0" encoding="UTF-8"?>
<validators>
  
<validator name="myValidator" class="ch13.example1.myValidator"/>
   
<validator name="required" class="com.opensymphony.xwork.validator.validators.RequiredFieldValidator" /> 
  
<validator name="requiredstring" class="com.opensymphony.xwork.validator.validators.RequiredStringValidator" /> 
  
<validator name="int" class="com.opensymphony.xwork.validator.validators.IntRangeFieldValidator" /> 
  
<validator name="double" class="com.opensymphony.xwork.validator.validators.DoubleRangeFieldValidator" /> 
  
<validator name="date" class="com.opensymphony.xwork.validator.validators.DateRangeFieldValidator" /> 
  
<validator name="expression" class="com.opensymphony.xwork.validator.validators.ExpressionValidator" /> 
  
<validator name="fieldexpression" class="com.opensymphony.xwork.validator.validators.FieldExpressionValidator" /> 
  
<validator name="email" class="com.opensymphony.xwork.validator.validators.EmailValidator" /> 
  
<validator name="url" class="com.opensymphony.xwork.validator.validators.URLValidator" /> 
  
<validator name="visitor" class="com.opensymphony.xwork.validator.validators.VisitorFieldValidator" /> 
  
<validator name="conversion" class="com.opensymphony.xwork.validator.validators.ConversionErrorFieldValidator" /> 
  
<validator name="stringlength" class="com.opensymphony.xwork.validator.validators.StringLengthFieldValidator" /> 
  
<validator name="regex" class="com.opensymphony.xwork.validator.validators.RegexFieldValidator" />
</validators>

验证类ch13.exmaple1.myValidator

继承FiledValidatorSupport并覆盖validate方法即可,出现错误用addFieldError设置相关错误信息,如果不进行addFieldError,则验证通过

package ch13.example1;

import com.opensymphony.xwork.validator.ValidationException;
import com.opensymphony.xwork.validator.validators.FieldValidatorSupport;

public class myValidator extends FieldValidatorSupport ...{

    
public void validate(Object obj) throws ValidationException ...{
        String name
=getFieldName();
        String value
=(String)getFieldValue(name,obj);
        
if(!value.equals("gaoxiang")&&!value.equals(""))...{
            addFieldError(name,obj);
        }


    }


}

运行页面,首先不输入name,系统会提示必须输入name required,输入非"gaoxiang",系统会提示name not equal gaoxiang



分享到:
评论
1 楼 mkingk 2008-11-22  
[color=yellow][/color][color=cyan][/color]
引用
引用

    [*]

    [*]
[url][/url][flash=200,200][/flash]                                                                                                                         

相关推荐

    webwork验证框架

    WebWork验证框架允许通过多种方式指定验证规则,例如通过Action的父类、Action本身、Action的方法,或者Action所使用的对象。这为不同的场景提供了足够的灵活性。 4. **强大的表达式验证**: WebWork使用OGNL...

    webwork_框架文档

    `Interceptor`是WebWork中的另一个关键概念,它允许在Action执行前后插入自定义逻辑,例如验证、日志记录、性能监控等。 WebWork的类型转换功能是其一大亮点,它可以自动将HTTP请求参数转换为Action类的属性类型,...

    Webwork2框架的开发指南资源文件

    6. **拦截器(Interceptors)**:Webwork2引入了拦截器的概念,允许在动作执行前后插入自定义逻辑,如权限检查、日志记录等,增强了框架的灵活性和扩展性。 资源包中的文件名可能代表了指南的不同部分或者章节,...

    webwork-register.rar_webwork_webwork 验证_webwork spring

    结合Spring的Validator接口,可以自定义更复杂的验证规则。 7. **视图渲染**:WebWork通常与JSP或FreeMarker等模板技术配合,将处理结果呈现给用户。在这个系统中,可能有专门的注册页面(register.jsp)和错误提示...

    解决webwork客户端验证提示信息重复多次显示问题

    WebWork是一个流行的Java Web框架,它提供了强大的动作框架和验证机制。然而,在实际应用中,有时可能会遇到一个问题,即客户端验证提示信息会重复多次显示,这不仅影响用户体验,也可能暴露出潜在的代码问题。本文...

    webwork 登录逻辑验证(简单)

    WebWork提供了多种方式来实现这个逻辑,比如使用自定义的Validator或Interceptor。开发者可以编写代码检查用户名和密码的有效性,可能还包括检查账户状态(如是否已禁用或过期)。 5. **结果处理**:如果验证成功,...

    webwork-1.4-src.zip_webwork_webwork s_webwork.zip_webwork1.4.zip

    8. **插件系统**:WebWork支持插件扩展,开发者可以方便地添加自定义功能,如验证、缓存管理等。 9. **配置管理**:WebWork的配置文件(如struts-config.xml)用于定义动作、结果、数据源等,这使得配置信息集中...

    WebWork 教程

    同时,WebWork集成了强大的验证框架,支持运行时的表单属性验证,通过配置文件或注解的方式,开发者可以方便地为Action中的字段添加验证规则,确保输入数据的有效性和安全性。 #### XWork配置详解 Xwork的配置主要...

    WebWork完全教程.doc

    最后,编写 HelloWorld 程序,以验证 WebWork 框架的安装是否成功。 Action Action 是 WebWork 框架的核心组件之一,负责处理用户请求和响应。Action 可以分为两类:Field-Driven Action 和 Model-Driven Action。...

    webwork拦截器,验证,以及帮助文档

    提供的`webwork.doc`文档应该包含了更深入的介绍和示例,包括如何创建自定义拦截器、如何编写复杂的验证规则、以及如何处理验证错误等。建议详细阅读这份文档,以获得更全面的WebWork开发知识。同时,实践是最好的...

    webwork教程

    - WebWork提供了内置的验证框架来简化表单验证过程。 - 可以为Action添加验证规则,自动验证用户的输入数据。 - **XWork配置文件**: - xwork.xml是WebWork的核心配置文件,用于定义Action、拦截器、结果类型等...

    webwork

    3. **拦截器(Interceptors)**:WebWork 使用拦截器来执行一些预处理或后处理任务,如权限验证、日志记录等。拦截器可以在Action执行前后插入自定义逻辑,增强了系统功能的灵活性。 4. **异常处理**:WebWork 提供...

    webwork Documentation

    WebWork框架内置了强大的表单处理机制,包括数据绑定、验证和转换,这极大地简化了前端表单数据的后端处理流程,提高了开发效率。 #### 国际化(I18N)支持 框架支持多语言环境,允许开发者轻松地为不同的语言和...

    webwork中文文档

    从给定的文件信息来看,标题和描述都指向了“webwork中文文档”,这暗示了文档的主要内容将围绕WebWork框架展开。WebWork是一个开源的Java Web应用开发框架,它在2000年初非常流行,是Struts框架的一个替代方案,...

    WebWork docs 2 -- webWork 详细的说明文档

    6. **请求参数(Parameters)**:WebWork提供了多种方式处理请求参数,包括自动类型转换、参数验证和安全防护。理解参数绑定机制有助于构建健壮的Web应用。 7. **视图技术**:WebWork可以与多种视图技术集成,如JSP...

    webwork中文帮助文档

    WebWork是一个开源的Java Web应用程序框架,它提供了一种基于MVC(Model-View-Controller)模式的开发方式,使得开发者能够更有效地构建动态、交互式的Web应用。本中文帮助文档旨在为使用WebWork框架的开发者提供...

    webwork所需要的包

    这个压缩包包含的是一组经过验证可用的WebWork所需的JAR文件,避免了用户在配置过程中因使用错误的或不可用的库而遇到的问题。 在WebWork框架中,JAR文件扮演着核心组件的角色,它们提供了框架的运行时环境和各种...

Global site tag (gtag.js) - Google Analytics