`
wj131
  • 浏览: 142227 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

strust2校验框架练习

阅读更多

strust2提供了强大的校验框架。而strust2也可以分为客户端校验和服务器端校验。

1、  客户端校验。

客户端的校验也是依赖于服务器端的校验的,想要执行客户端校验,首先还是把服务器端的校验文件配置好。然后在在jsp页面的form中不能有自己的主题设置(theme),而且还要加一个属性validate="true"才能执行客户端校验。但是客户端校验很弱。一般采用的是服务器端校验

2、  服务器端校验。

想要执行服务器端的校验,那么就要首先配置好校验文件。配置文件的位置与jsp页面的form的提交到的那个action类的同一包体下面。而且名字也是要一定的规范。比如说action名称为LoginAction,那么校验文件为:LoginAction-validation.xml。而这样写默认是在action中执行execute()方法的时候执行校验,但是如果你想执行在自己写的方法中去校验的话,那么就这么写LoginAction-login-validation.xml意思是在LoginAction类中执行login方法的时候,就会执行校验,但是如果此时你还存在LoginAction-validation.xml的话,那么LoginAction-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">

校验的内容参照为:

Xwork包下的com.opensymphony.xwork2下的validator/valudators中的default.xml

下面以登陆为例子:

regiest.jsp

 

                  <s:fielderror cssStyle="color:red"/>

                    <!—校验错误的展现,默认的fielderror级别的错误-à

 

LoginAction

 

 

public class LoginAction extends ActionSupport{

 

    private int uid;

    private String uname;

    private String sex;

    private int age;

    private String email;

    private Date birthday;

    private String phone;

    public LoginAction() {

    }

    @Override

    public String execute() throws Exception {

       return this.SUCCESS;

    }

    @Override

    public void validate() {

    }......set和get方法略

   }

LoginAction-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>

    <!-- uid的校验 -->

    <field name="uid">

       <field-validator type="required"><!-- 必填的 -->

           <message>uid should be required!</message>

       </field-validator>

       <field-validator type="int">

           <param name="max">10000</param>

           <param name="min">1</param>

           <message>uid should be between ${min} and ${max}</message>

       </field-validator>

    </field>

    <!-- uname的校验 -->

    <field name="uname">

       <field-validator type="requiredstring"><!-- 必填的字符串 -->

    <!--<param name="trim">true</param> 去掉空格,可以省略,默认为true -->

           <message>uname should not be blank!</message>

       </field-validator>

        <field-validator type="stringlength">

                  <param name="maxLength">10</param>

                  <param name="minLength">6</param>

                  <message>

                  uname should be between ${minLength} and ${maxLength}

                  </message>

       </field-validator>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   

</field>

    <!-- sex的校验 -->

    <field name="sex">

       <field-validator type="requiredstring">

           <message>sex should should be required!</message>

       </field-validator>

    </field>

    <!-- age的校验 -->

    <field name="age">

       <field-validator type="int">

           <param name="max">11</param>

           <param name="min">80</param>

           <message>age should be between</message>

       </field-validator>

    </field>

    <!-- birthday的校验 -->

    <field name="birthday">

       <field-validator type="required"><!-- 必填的 -->

           <message>birthday should not be blank!</message>

       </field-validator>

       <field-validator type="date">

           <param name="max">2009-1-1</param>

           <param name="min">1980-1-1</param>

           <message>

              birthday should be between ${min} and ${max}

           </message>

       </field-validator>

    </field>

    <!-- email的校验 -->

    <field name="email">

       <field-validator type="requiredstring"><!-- 必填的字符串 -->

           <message>email should not be blank!</message>

       </field-validator>

       <field-validator type="email">

           <message>email is error!</message>

       </field-validator>

    </field>

    <field name="phone">

       <field-validator type="requiredstring"><!-- 必填的字符串 -->

           <message>phone should not be blank!</message>

       </field-validator>

       <field-validator type="regex"><!—正则表达式-à

           <param name="expression">

^\(?(\d{3,4})\)?[-| ]?(\d{3,4})[-| ]?(\d{4})$

</param>

           <message>phone is invalid!</message>

       </field-validator>

    </field>

</validators>

注意在jsp页面<s:fielderror cssStyle="color:red"/>取出现校验错误的值。

如果在LoginAction中的valdate方法中还定义的一个名称相同,但是值不同的错误。

比如说

    public void validate() {

       this.addFieldError("uname", "uname is error");

    }

而如果在提交的时候校验uname真的出错,在jsp页面用<s:fielderror/>站下错误的时候。

uname的错误信息会得到两条(在校验文件如果对一个属性定义多个校验的时候。当校验到出错时,就不会再往下对该属性进行校验)。"uname is error"也是会被展现出来的。比校验文件的错误信息后展现。

现在对fielderror进行解析:fielderror其实是LinkHashMap。键为String类型的,而值为ArrayList类型的

消息资源国际化:

LoginAction.properties配置文件中,是专门对应的LoginAction类的,在同一个包体下。

uid.invalid=\u7528\u6237\u7f16\u53f7\u51fa\u9519 \u7f16\u53f7\u5fc5\u987b\u5728 ${min} \u548c ${max}\u4e4b\u95f4

这里只写了一个。

因而得到在LoginValidate.xml配置文件中就改为:

<field name="uid">

       <field-validator type="required"><!-- 必填的 -->

           <message>uid should be required!</message>

       </field-validator>

       <field-validator type="int">

           <param name="max">10000</param>

           <param name="min">1</param>

           <message key="uid.invalid">

           </message>

       </field-validator>

</field>

。。。。。。校验框架先实现到这。。。。。。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1
0
分享到:
评论

相关推荐

    struts1验证框架相当好的经典例子

    在Struts1中,验证框架是处理用户输入数据校验的重要组成部分,它帮助开发者确保用户提交的数据符合预定义的规则,从而提高应用程序的安全性和用户体验。下面将详细介绍Struts1验证框架的使用。 首先,我们来看一下...

    struts2框架2016版资料day01

    5. **拦截器**:拦截器是Struts2的一大特色,它允许开发者在Action调用前后插入自定义逻辑,比如日志记录、权限验证、数据校验等。在day01的课程中,你可能会学习如何定义和使用拦截器,以及如何在配置文件中配置...

    基于struts2 mvc框架的练习源程序Eclipse+tomcat+SQL2005

    在这个"基于Struts2 MVC框架的练习源程序"中,开发者可以学习到如何在Eclipse集成开发环境中配置和运行一个基于Struts2的应用,同时配合Tomcat服务器和SQL Server 2005数据库进行数据管理。 首先,我们需要了解...

    struts2练习完全代码

    这个压缩包“struts2.0”似乎包含了全面的Struts2练习代码,这将是一个学习和理解Struts2框架功能和实践操作的好资源。 Struts2的核心特性包括: 1. **Action类和ActionMapping**:在Struts2中,Action类是业务...

    struts2+spring练习

    Struts2和Spring是两种非常重要的Java Web开发...通过这个"Struts2+Spring练习"项目,新手可以逐步掌握如何在实际项目中结合这两个框架,理解它们的协作方式,以及如何利用它们的强大功能来构建健壮的Java Web应用。

    struts2.0常用功能练习

    10. **表单验证**:Struts2提供了强大的表单验证功能,可以在Action类中编写校验逻辑,也可以使用XML或注解方式定义验证规则。 11. **模型驱动**:Struts2的模型驱动模式可以将Action类作为模型,将表单数据自动...

    Struts2第七章商品展示

    - 注册功能通常需要对用户输入进行校验,Struts2提供了内置的数据校验框架,可以使用注解或XML配置文件定义校验规则。 9. **Ajax异步请求**: - 提高用户体验,商品分类或者筛选功能可能采用Ajax技术,Struts2...

    Struts2上的练习代码事例

    总的来说,"Struts2上的练习代码事例"旨在帮助开发者了解如何在实际项目中使用Struts2框架,包括创建Action、配置Action映射、使用拦截器、以及与视图交互等。通过深入研究这些代码,你可以更好地掌握Struts2的工作...

    Struts2练习

    这个“Struts2练习”项目显然是一个学习或实践Struts2框架的实例,可能包含了部分功能的实现,但并未全部完成。 在MyEclipse环境下,开发者通常会利用其集成的开发工具来创建、配置和运行Struts2应用。MyEclipse是...

    struts入门练习

    总的来说,这个"struts入门练习"涵盖了基础的Struts框架应用,包括Action的编写、异常处理、资源文件管理以及简单的用户交互逻辑。对于想要学习Struts的人来说,这是一个很好的起点,可以帮助他们逐步理解如何在实际...

    struts2+hibernate整合 练习之CURD 完整版

    在Struts2中,你可以利用ActionSupport类的validates()方法进行数据校验,而在Hibernate中,可以使用Transaction API来管理事务。 总的来说,这个练习项目将带你走过一个完整的Web应用开发流程,从需求分析到数据库...

    struts2练习源码

    这个"struts2练习源码"提供了完整的Struts2框架实践项目,适合初学者入门学习。在源码中,你将能够看到Struts2框架的核心组件和配置如何在实际应用中发挥作用。 首先,了解Struts2框架的基础知识至关重要。Struts2...

    struts练习 初学者入门

    总的来说,"Struts练习 初学者入门"这个教程是Java开发者入门Struts的绝佳资源,通过实际操作,你可以系统地学习并掌握这一框架,为你的编程生涯添加一个重要的技能点。在实践中不断探索,相信你会在短时间内对...

    Struts2_OGNL

    在掌握Struts2和OGNL的基础上,开发者可以进一步学习Struts2的其他组件和特性,如标签库、异常处理、国际化支持、拦截器机制、输入校验、文件上传和下载等,这些都是构建复杂Web应用不可或缺的组件和功能。

    JAVA Struts 框架 代码示例

    4. **拦截器**:Struts2引入了拦截器机制,允许在请求处理流程中插入自定义逻辑,例如日志记录、权限验证等,提高了代码的复用性。 5. **异常处理**:全局异常处理机制使得开发者可以统一处理应用中的错误和异常,...

    Struts2练习一

    4. **Interceptor拦截器**:Struts2使用拦截器来增强Action的处理能力,例如日志记录、权限验证等。通过在配置文件中声明拦截器栈,可以实现灵活的业务逻辑控制。 5. **结果类型**:结果类型定义了Action执行后如何...

    struts练习struts练习

    通过这些练习,你可以深入理解Struts框架的工作原理,掌握如何构建一个完整的Struts应用,同时提升你的Java Web开发技能。记得在实践中不断探索,查阅官方文档,参与社区讨论,以增强对Struts的理解和应用。

    传智的struts2

    Struts2是Apache软件基金会的一个开源项目,是一个基于MVC(Model-View-Controller)设计模式的Java Web应用框架。它的出现是为了改进Struts1框架的一些局限性,提供更强大的功能和更好的性能。Struts2的核心是...

    传智播客struts2教程

    在描述中提到的“输入校验”是Web开发中的重要环节,Struts2提供了多种方式进行输入验证。你可以通过注解或XML配置来定义校验规则,例如在Action类的方法参数上使用@Validated注解,或者在struts.xml中配置validate....

Global site tag (gtag.js) - Google Analytics