1.开启crud module
在/conf/application.conf 中添加
# import the crud module
module.crud=${play.path}/modules/crud
在/conf/routes 中添加
# import crud routes
* /admin module:crud
需要重启server,导入crud module
2.添加控制器
/app/controllers
import play.*;import play.mvc.*;
public class posts extends crud {
}public class tags extends crud {
}public class users extends crud {
}public class comments extends crud {
}
可能会提示错误: crud 无法解析为类型 并且运行程序会提示错误
解决办法:
修改 conf/dependencies.yml
require:
- play
- play -> crud
运行shell
> play dependencies
工程下会生成 modules/crud 文件,重新启动工程即可,但是编译还是会出错,可能是没有引用crud工程的原因
3.创建controller
package controllers;import models.user;
@crud.for(user.class)public class adminusers extends crud {
}
4.修改model,添加验证
以user为例
public class user extends model {
@required public string email;
@required
@password
public string password; public string fullname; public string isadmin; public string tostring() { return email;
}
}
进入http://localhost:9000/admin/ 选择add user进入 user form进行测试
public class post extends model {
@required public string title;
@required public date postedat;
@lob
@required
@maxsize(10000) public string content;
@required
@manytoone public user author;
@onetomany(mappedby = post, cascade = cascadetype.all) public list<comment> comments;
@manytomany(cascade = cascadetype.persist) public set<tag> tags;
}
public class tag extends model implements comparable<tag> {
@required public string name;
}
public class comment extends model {
@required public string author;
@required public date postedat;
@lob
@required
@maxsize(10000) public string content;
@manytoone
@required public post post;
}
5.页面上显示的label名字是小写,与对应类的字段名一致,如果想显示大写,可以修改/conf/messages
title=title
content=content
postedat=posted at
author=author
post=related post
tags=tags set
name=common name
email=email
password=password
fullname=full name
isadmin=user is admin
以上就是playframework完整实现一个app(九)的内容。
