Flamingo Seam 组件学习——EntityValidator组件

Flamingo 为 Flex + Seam提供了部分组件供使用
主要的有Validator的Seam AMF版本 EntityValidator, CallSet 的 SeamCallSet和 SeamCall 和 Binding组件的 BindService.

1、EntityValidator
    该组件提供表单字段的验证功能,可以使用hibernate validator annotation对实体类组件进行验证
    示例:
    validation.mxml:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!--
  3.   ~ Copyright (C) 2008 Exadel, Inc.
  4.   ~
  5.   ~ The GNU Lesser General Public License, Version 3
  6.   -->
  7. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  8.     xmlns:flamingo="com.exadel.flamingo.flex.components.flamingo.*">
  9.     <!--
  10.     Note:
  11.     destination - name of component on server or name of entity,
  12.     provided - in InputText for educational reason. Can be set dynamically. In this case, it points to "person"
  13.     validationTarget - property of target object this is what we are validating (text box)
  14.     source - this is a text box we are validating
  15.     property - name of property of visual component that is being validated
  16.     required - check for blank
  17.     Validator triggers when source conponent loses focus. This can be customized:
  18.     event = ...
  19.     -->
  20.     <flamingo:EntityValidator id="validator"
  21.         destination="{destination.text}"
  22.         validationTarget="{target.text}"
  23.         source="{test}" 
  24.         property="text" 
  25.         required="false"/>
  26.     <mx:Form width="100%" >
  27.         <mx:Label text='Valid destinatios are: "person" component, "Person" entity as well as full qualified class name'/>
  28.         <mx:FormItem label="Destination:" width="100%" >
  29.             <mx:TextInput id="destination" width="100%" text="person" />
  30.         </mx:FormItem>
  31.         <mx:FormItem label="Validation target:" width="100%" >
  32.             <mx:TextInput id="target" width="100%" text="lastName" />
  33.         </mx:FormItem>
  34.         <mx:FormItem label="Input value:" width="100%" >
  35.             <mx:TextInput id="test" width="100%" />
  36.         </mx:FormItem>
  37.         <mx:FormItem>
  38.             <mx:Button label="Validate" click="validator.validate()" />
  39.         </mx:FormItem>
  40.     </mx:Form>
  41.     
  42. </mx:Application>
 然后是实体类Person的代码:
  1. /*
  2.  * Copyright (C) 2008 Exadel, Inc.
  3.  *
  4.  * The GNU Lesser General Public License, Version 3
  5.  */
  6. package com.exadel.flamingo.flex.samples;
  7. import javax.persistence.Entity;
  8. import org.hibernate.validator.Length;
  9. import org.jboss.seam.annotations.Name;
  10. @Name("person")
  11. @Entity(name="Person")
  12. public class Person{
  13.     private String lastName;
  14.     /**
  15.      * @return the lastName
  16.      */
  17.     @Length(min=3, max=40)
  18.     public String getLastName() {
  19.         return lastName;
  20.     }
  21.     /**
  22.      * @param lastName the lastName to set
  23.      */
  24.     public void setLastName(String lastName) {
  25.         this.lastName = lastName;
  26.     }
  27.     
  28. }
   将swf文件编译后,放到有Person组件的Seam 项目中运行,就可以对该字段进行验证。

你可能感兴趣的:(Hibernate,jboss,Flex,Adobe,seam)