Play Framework 完整实现一个APP(九)
添加增删改查操作
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
。。
Play Framework 完整实现一个APP(九)的更多相关文章
- Play Framework 完整实现一个APP(十一)
添加权限控制 1.导入Secure module,该模块提供了一个controllers.Secure控制器. /conf/application.conf # Import the secure m ...
- Play Framework 完整实现一个APP(五)
程序以及基本可用了,需要继续完善页面 1.创建页面模板 创建文件 app/views/tags/display.html *{ Display a post in one of these modes ...
- Play Framework 完整实现一个APP(二)
1.开发DataModel 在app\moders 下新建User.java package models; import java.util.*; import javax.persistence. ...
- Play Framework 完整实现一个APP(十四)
添加测试 ApplicationTest.java @Test public void testAdminSecurity() { Response response = GET("/adm ...
- Play Framework 完整实现一个APP(十三)
添加用户编辑区 1.修改Admin.index() public static void index() { List<Post> posts = Post.find("auth ...
- Play Framework 完整实现一个APP(十二)
1.定制CRUD管理页面 > play crud:ov --layout 替换生成文件内容 app/views/CRUD/layout.html #{extends 'admin.html' / ...
- Play Framework 完整实现一个APP(十)
1.定制Comment列表 新增加Comment list页面,执行命令行 > play crud:ov --template Comments/list 会生成/app/views/Comme ...
- Play Framework 完整实现一个APP(八)
创建Tag标签 1.创建Model @Entity @Table(name = "blog_tag") public class Tag extends Model impleme ...
- Play Framework 完整实现一个APP(六)
需要为Blog添加 查看和发表评论的功能 1.创建查看功能 Application.java中添加 show() 方法 public static void show(Long id) { Post ...
随机推荐
- EF Code First 一对多、多对多关联,如何加载子集合?
应用场景 先简单描述一下标题的意思:使用 EF Code First 映射配置 Entity 之间的关系,可能是一对多关系,也可能是多对多关系,那如何加载 Entity 下关联的 ICollectio ...
- js实现String.Fomat
引言 拼接字符串用习惯了C#的String.Format.今天看别人的代码在js中也封装了一个js的String.Format,用来拼接字符串和DOM. js实现和调用String.Format St ...
- Autofac - 程序集扫描
通过程序集扫描, 能够自动注册符合规则的类型. 这种方式, 很方便. 这一篇就介绍下程序集扫描吧. 一.扫描 其实前面已经介绍过, 这种方式. 不过并不全. 先看一个之前的方式: var builde ...
- css毛玻璃效果
毛玻璃其实就是磨砂玻璃,能够模糊的看清背后的风景,让人感觉有种朦胧美,让界面看上去有些层次感. 比如: 高大上啊,接下来肯定是眼馋手痒的过程... 当然,用ps搞一个全景毛玻璃背景毫无疑问是最省事的, ...
- 再次推荐一款逼真的HTML5下雪效果
再次推荐一款逼真的下雪效果 效果图: 效果描述:之前推荐过一款下雪的jQuery插件之前的那款下降速度比较缓慢,今天推荐的这个下降速度比较快,大雪哇 使用方法:1.将index.html中的样式复制到 ...
- Android的系统服务一览
System_Server进程 运行在system server进程中的服务比较多,这是整个Android框架的基础 Native服务 SurfaceFlinger 这是framebuffer合成的服 ...
- .net源码分析 – Dictionary<TKey, TValue>
接上篇:.net源码分析 – List<T> Dictionary<TKey, TValue>源码地址:https://github.com/dotnet/corefx/blo ...
- repeater三级嵌套绑定
<asp:Repeater ID="rpt1" runat="server" onitemdatabound="rpt1_ItemDataBou ...
- 芒果TV招聘研发工程师(JAVA PYTHON),地点长沙
长沙芒果TV招聘高级 JAVA Python 工程师,工作地点:湖南广电 有兴趣的邮件0xmalloc@gmail.com; zealotyin@qq.com 公司有一大批从北京上海一线互联网企业 ...
- jquery——左右按钮点击切换一组图片功能
一.最终效果 二.功能分析 1.需求分析 点击左边pre按钮,显示前面三个图片,点击右边的next按钮,显示后面的一组(三个)图片.初始化只显示next按钮,到最后一组只显示pre按钮,中间过程两按钮 ...