play的字段验证

使用play,对字段进行校验,只需要使用注解即可,连javascript都不用写

得益于play.data.validation.*这个包下的东东!

对User类的email字段和password进行验证

Java代码  
  1. package models;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. import javax.persistence.Entity;  
  7. import javax.persistence.OneToMany;  
  8.   
  9. import play.data.validation.Email;  
  10. import play.data.validation.Required;  
  11. import play.db.jpa.Model;  
  12.   
  13. @Entity  
  14. public class User extends Model {  
  15.       
  16.     @Email  
  17.     @Required  
  18.     public String email;  
  19.       
  20.     @Required(message="input your pwd now!")  
  21.     public String password;  
  22.       
  23.     public String fullname;  
  24.       
  25.     public boolean isAdmin;  
  26.       
  27.     //@OneToMany 声明User与Post之间是1对多的关系  
  28.     //mappedBy="author" 表示将通过对方(User)的author字段来进行关联关系的维护  
  29.     @OneToMany(mappedBy="author")  
  30.     public List<Post> posts;  
  31.       
  32.       
  33.     public User(String email,String password, String fullname) {  
  34.         this.email = email;  
  35.         this.password = password;  
  36.         this.fullname = fullname;  
  37.         this.posts = new ArrayList<Post>(0);  
  38.     }  
  39.       
  40.     /** 
  41.      * 联合email和password两个条件查询User 
  42.      * @param email 
  43.      * @param password 
  44.      * @return 
  45.      */  
  46.     public static User connect(String email, String password) {  
  47.         return find("byEmailAndPassword", email, password).first();  
  48.     }  
  49.       
  50.     /** 
  51.      * 添加Post的动作放到User中,这样可以把Post设置到User的List<Post>集合中 
  52.      * 这样实现了双方都持有对方的引用了 
  53.      * @param title 
  54.      * @param content 
  55.      * @return 
  56.      */  
  57.     public User addPost(String title, String content) {  
  58.         Post post = new Post(title,content,this).save();  
  59.         this.posts.add(post);  
  60.         this.save();  
  61.         return this;  
  62.     }  
  63.   
  64.     @Override  
  65.     public String toString() {  
  66.         return "User [" + fullname + "]";  
  67.     }  
  68.       
  69.       
  70.       
  71. }  

 

 什么都不输,保存一个User对象

会提示错误信息到页面的,play真实个大好人啊,什么活都给干了!




注意:使用CRUD在页面操作,对象的创建过程:

1.调用默认构造函数生成一个对象

2.查询数据库,把数据赋值到这个对象

3.页面呈现此对象的相关属性

 

如果在页面新创建一个对象,则不会查询数据库

1.调用默认构造函数生成一个对象

2.为对象赋值(如果默认构造函数中有这样做)

3.页面呈现各个字段为空的对象,如果有为字段设置默认值,可在默认构造函数中操作

4.页面输入数据,保存对象

这里想说的是:对于createTime这样的字段值,一般是后台new Date()创建的,在页面使用CRUD貌似还不能对其进行控制,因为页面会呈现这个字段出现让用户输入(是否可以通过js控制其disabled状态呢?)暂时有这样一个疑问!有人知否?或者play提供了禁止编辑的注解,是什么???

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值