`

Tapestry 建立自己得 Validator

阅读更多

今天介绍一下如何建立自己得Validator
1. 建立Validator继承BaseValidator类
我实现得是验证用户输入必须和指定字段一致。
如果想要带参数得验证,请添加一个带String参数得构造方法,并实现setter,getter方法
例如validator验证调用名为 name,则实现setName,getName方法。
代码:
package org.appfuse.webapp.tapestry;

import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.TapestryUtils;
import org.apache.tapestry.form.FormComponentContributorContext;
import org.apache.tapestry.form.IFormComponent;
import org.apache.tapestry.form.ValidationMessages;
import org.apache.tapestry.form.validator.BaseValidator;
import org.apache.tapestry.valid.ValidatorException;

public class MyValidater extends BaseValidator {
//用户得输入内容
 private String name;

 /**
  * @return the name
  */
 public String getName() {
  return name;
 }

 /**
  * @param name
  *            the name to set
  */
 public void setName(String name) {
  this.name = name;
 }

 public MyValidater() {

 }

 public MyValidater(String string) {
  super(string);
 }

//实现验证方法
 public void validate(IFormComponent field, ValidationMessages messages,
   Object object) throws ValidatorException {
  String str = object.toString();
  if (!str.equals(name))
   throw new ValidatorException(messages.formatValidationMessage(
     getMessage(), "invalid-format", new Object[] {
       field.getDisplayName(), null }));
 }
}

2.ok,修改hivemodule.xml 文件,添加以下代码

    <contribution configuration-id="tapestry.form.validator.Validators">
       <validator name="name" configurable="true" class="org.appfuse.webapp.tapestry.MyValidater"/>
   </contribution>


注意:如果你的validator不带参数,请设置configurable=false
3.  ok,可以在page文件中使用了,

    <component id="usernameField" type="TextField">
        <binding name="value" value="user.username"/>
        <binding name="validators" value="validators:required,name=airdream"/>
        <binding name="displayName" value="message:user.username"/>
    </component>

大功告成!输入内容必须为aridream,否则报错!
分享到:
评论

相关推荐

    tapestry官方中文文档

    Tapestry是一款强大的Java Web应用程序框架,由Apache软件基金会维护,它强调了组件化、模块化和可重用性,使得开发复杂的Web应用变得更加简单。本文将深入介绍Tapestry 4的相关知识点。 1. **组件化编程**: ...

    tapestry学习入门资料

    1. Tapestry 把在建立 Web 应用程序容易出错的工作交由框架本身来完成,接管了大量手工完成的任务,如分发用户请求,创建和解释 URL 信息,操作本地化和国际化等等大量的工作。 2. Tapestry 由“对象、方法、域”...

    Tapestry简单入门.rar_java Tapestry_tapestry

    Tapestry是一款强大的Java Web应用程序框架,由Apache软件基金会维护,它提供了一种基于组件的模型来构建动态、数据驱动的Web应用。本教程将帮助初学者了解Tapestry的基本概念,带你逐步入门并掌握其核心组件的使用...

    tapestry源码 api等

    通过研究这些源码和API,开发者不仅可以掌握Tapestry的基本用法,还能深入了解其设计哲学和内部工作流程,从而更好地优化和扩展自己的应用程序。同时,对于那些希望贡献到Tapestry开源项目的人来说,这是一份宝贵的...

    tapestry教程资料文档合集

    Tapestry5最新中文教程.doc 作者 Renat Zubairov & Igor Drobiazko译者 沙晓兰 发布于 2008年7月2日 下午9时30分 社区 Java 主题 Web框架 ----------------------------------------- Tapestry5.1实例教程.pdf ...

    Tapestry API

    同时,Tapestry的双向数据绑定使得模型和视图之间的同步变得简单,`PropertyConduit`和`PropertyBinding`是实现这一功能的关键。 4. **模板语言** Tapestry使用一种基于HTML的模板语言,允许开发者在HTML中嵌入...

    Tapestry4开发指南

    ### Tapestry4开发指南 #### 一、Tapestry4概览 Tapestry4作为一款先进的Web应用框架,由Howard Lewis Ship所创造,旨在提供一种更为高效、灵活的Web应用构建方式。与前代Tapestry3相比,Tapestry4在设计上有了...

    tapestry3开发指南,带tapestry3所有jar包

    **Tapestry 3 开发指南** Tapestry 3 是一个开源的Java Web应用程序框架,它在20世纪90年代末至21世纪初非常流行,由Apache软件基金会维护。这个框架提供了组件化、事件驱动和声明式编程模型,帮助开发者构建动态、...

    tapestry5以上的帮助事例,帮助文档与spring衔接文档

    Tapestry是一个基于控件的框架以致于用它开发Web应用类似开发传统的GUI应用。你用Tapestry开发Web应用时你无需关注以操作为中心的(Operation-centric) Servlet API.引用Tapestry网站上的一句话:"Tapestry用对象...

    tapestry5中文文档

    Tapestry 还内置了Ajax支持,使得创建Ajax组件变得更加容易。 在开始使用Tapestry 5 开发之前,确保安装了Java SE Development Kit 5.0或更高版本,以及Servlet容器,如Apache Tomcat 5.5或更新版本。如果选择使用...

    Tapestry通用WEB框架

    此外,其开发模式下的实时反馈功能让调试变得更加高效。 11. **性能优化**:Tapestry通过缓存策略、延迟加载和最小化HTTP请求等方式提高应用性能。它还支持AOP(面向切面编程)来处理如安全检查、日志记录等横切...

    Tapestry 5 電子書

    读者将学习如何创建和定制自己的组件,以及如何通过事件来协调组件间的交互。 接着,书中会详细讲解Tapestry 5的模版语言和表达式语言,让开发者能够有效地定义页面布局和动态内容。Tapestry的模版语言允许开发者...

    tapestry5.2.6 jar包

    Tapestry 5.2.6 是一个成熟的Java Web开发框架,它提供了一种高效、模块化和可扩展的方式来构建动态、数据驱动的Web应用程序。这个框架的核心理念是将用户界面与业务逻辑分离,通过组件化的思想实现页面的构建,从而...

    Tapestry4.1.2 入门-介绍

    Tapestry的组件系统非常强大,允许开发者定义自己的可复用组件,每个组件都可以有自己的属性、事件和行为。这些组件可以通过简单的XML标记(如`&lt;span jwcid="@Insert" ...&gt;`)在页面模板中使用。ognl(Object-Graph ...

    tapestry4开发指南

    在Tapestry 4中,表单处理变得简单而强大,书中的相关章节会讲解如何创建表单、验证输入、处理表单提交,以及使用Tapestry的服务器端和客户端验证机制。 另外,本书还会涉及国际化和本地化支持,帮助读者实现多语言...

    tapestry 实例

    每个组件都有自己的状态和生命周期,可以通过声明式的方式来定义其行为。这使得代码更易于理解和维护,同时也提高了开发效率。 **二、Tapestry 组件** 1. **页面组件**:Tapestry 应用的基础单元是页面,页面由一...

    Tapestry5.0.16_API文档

    Tapestry5.0.16文档和大家一起学习

    tapestry-4.0.zip

    它将Web页面分解为独立、可重用的组件,每个组件都有自己的状态和行为。这种设计模式提高了代码的可维护性和可扩展性。开发者可以专注于创建和组合这些组件,而不是处理低级别的HTML和Servlet细节。 在Tapestry 4.0...

    Tapestry spindle插件下载

    Apache Tapestry是一个开源的Java Web框架,它的核心理念是将用户界面分解为可重用的组件,每个组件有自己的HTML模板、Java代码以及状态管理。Tapestry通过组件事件处理和页面导航规则来管理应用程序的流程,这使得...

Global site tag (gtag.js) - Google Analytics