添加增删改查操作

1.开启CRUD Module

/conf/application.conf 中添加

  1. # Import the crud module
  2. module.crud=${play.path}/modules/crud

  

/conf/routes 中添加

  1. # Import CRUD routes
  2. * /admin module:crud

  

需要重启Server,导入CRUD Module

2.添加控制器

/app/controllers

  1. import play.*;
  2. import play.mvc.*;
  3.  
  4. public class Posts extends CRUD {
  5. }
  6.  
  7. public class Tags extends CRUD {
  8. }
  9.  
  10. public class Users extends CRUD {
  11. }
  12.  
  13. public class Comments extends CRUD {
  14. }

可能会提示错误: CRUD 无法解析为类型 并且运行程序会提示错误

解决办法:

修改 conf/dependencies.yml

  1. require:
  2. - play
  3. - play -> crud

  

运行Shell

  1. > play dependencies

  

工程下会生成 modules/crud 文件,重新启动工程即可,但是编译还是会出错,可能是没有引用crud工程的原因

3.创建Controller

  1. package controllers;
  2.  
  3. import models.User;
  4.  
  5. @CRUD.For(User.class)
  6. public class AdminUsers extends CRUD {
  7.  
  8. }

4.修改Model,添加验证

以User为例

  1. public class User extends Model {
  2. @Email
  3. @Required
  4. public String email;
  5.  
  6. @Required
  7. @Password
  8. public String password;
  9.  
  10. public String fullname;
  11. public String isAdmin;
  12.  
  13. public String toString() {
  14. return email;
  15. }
  16. }

进入http://localhost:9000/admin/  选择add user进入 User Form进行测试

  1. public class Post extends Model {
  2. @Required
  3. public String title;
  4.  
  5. @Required
  6. public Date postedAt;
  7.  
  8. @Lob
  9. @Required
  10. @MaxSize(10000)
  11. public String content;
  12.  
  13. @Required
  14. @ManyToOne
  15. public User author;
  16.  
  17. @OneToMany(mappedBy = "post", cascade = CascadeType.ALL)
  18. public List<Comment> comments;
  19.  
  20. @ManyToMany(cascade = CascadeType.PERSIST)
  21. public Set<Tag> tags;
  22. }
  1. public class Tag extends Model implements Comparable<Tag> {
  2.  
  3. @Required
  4. public String name;
  5. }
  1. public class Comment extends Model {
  2. @Required
  3. public String author;
  4.  
  5. @Required
  6. public Date postedAt;
  7.  
  8. @Lob
  9. @Required
  10. @MaxSize(10000)
  11. public String content;
  12.  
  13. @ManyToOne
  14. @Required
  15. public Post post;
  16. }

5.页面上显示的Label名字是小写,与对应类的字段名一致,如果想显示大写,可以修改/conf/messages

  1. title=Title
  2. content=Content
  3. postedAt=Posted at
  4. author=Author
  5. post=Related post
  6. tags=Tags set
  7. name=Common name
  8. email=Email
  9. password=Password
  10. fullname=Full name
  11. isAdmin=User is admin

  

。。

Play Framework 完整实现一个APP(九)的更多相关文章

  1. Play Framework 完整实现一个APP(十一)

    添加权限控制 1.导入Secure module,该模块提供了一个controllers.Secure控制器. /conf/application.conf # Import the secure m ...

  2. Play Framework 完整实现一个APP(五)

    程序以及基本可用了,需要继续完善页面 1.创建页面模板 创建文件 app/views/tags/display.html *{ Display a post in one of these modes ...

  3. Play Framework 完整实现一个APP(二)

    1.开发DataModel 在app\moders 下新建User.java package models; import java.util.*; import javax.persistence. ...

  4. Play Framework 完整实现一个APP(十四)

    添加测试 ApplicationTest.java @Test public void testAdminSecurity() { Response response = GET("/adm ...

  5. Play Framework 完整实现一个APP(十三)

    添加用户编辑区 1.修改Admin.index() public static void index() { List<Post> posts = Post.find("auth ...

  6. Play Framework 完整实现一个APP(十二)

    1.定制CRUD管理页面 > play crud:ov --layout 替换生成文件内容 app/views/CRUD/layout.html #{extends 'admin.html' / ...

  7. Play Framework 完整实现一个APP(十)

    1.定制Comment列表 新增加Comment list页面,执行命令行 > play crud:ov --template Comments/list 会生成/app/views/Comme ...

  8. Play Framework 完整实现一个APP(八)

    创建Tag标签 1.创建Model @Entity @Table(name = "blog_tag") public class Tag extends Model impleme ...

  9. Play Framework 完整实现一个APP(六)

    需要为Blog添加 查看和发表评论的功能 1.创建查看功能 Application.java中添加 show() 方法 public static void show(Long id) { Post ...

随机推荐

  1. EF Code First 一对多、多对多关联,如何加载子集合?

    应用场景 先简单描述一下标题的意思:使用 EF Code First 映射配置 Entity 之间的关系,可能是一对多关系,也可能是多对多关系,那如何加载 Entity 下关联的 ICollectio ...

  2. js实现String.Fomat

    引言 拼接字符串用习惯了C#的String.Format.今天看别人的代码在js中也封装了一个js的String.Format,用来拼接字符串和DOM. js实现和调用String.Format St ...

  3. Autofac - 程序集扫描

    通过程序集扫描, 能够自动注册符合规则的类型. 这种方式, 很方便. 这一篇就介绍下程序集扫描吧. 一.扫描 其实前面已经介绍过, 这种方式. 不过并不全. 先看一个之前的方式: var builde ...

  4. css毛玻璃效果

    毛玻璃其实就是磨砂玻璃,能够模糊的看清背后的风景,让人感觉有种朦胧美,让界面看上去有些层次感. 比如: 高大上啊,接下来肯定是眼馋手痒的过程... 当然,用ps搞一个全景毛玻璃背景毫无疑问是最省事的, ...

  5. 再次推荐一款逼真的HTML5下雪效果

    再次推荐一款逼真的下雪效果 效果图: 效果描述:之前推荐过一款下雪的jQuery插件之前的那款下降速度比较缓慢,今天推荐的这个下降速度比较快,大雪哇 使用方法:1.将index.html中的样式复制到 ...

  6. Android的系统服务一览

    System_Server进程 运行在system server进程中的服务比较多,这是整个Android框架的基础 Native服务 SurfaceFlinger 这是framebuffer合成的服 ...

  7. .net源码分析 – Dictionary<TKey, TValue>

    接上篇:.net源码分析 – List<T> Dictionary<TKey, TValue>源码地址:https://github.com/dotnet/corefx/blo ...

  8. repeater三级嵌套绑定

    <asp:Repeater ID="rpt1" runat="server" onitemdatabound="rpt1_ItemDataBou ...

  9. 芒果TV招聘研发工程师(JAVA PYTHON),地点长沙

    长沙芒果TV招聘高级 JAVA Python 工程师,工作地点:湖南广电   有兴趣的邮件0xmalloc@gmail.com; zealotyin@qq.com 公司有一大批从北京上海一线互联网企业 ...

  10. jquery——左右按钮点击切换一组图片功能

    一.最终效果 二.功能分析 1.需求分析 点击左边pre按钮,显示前面三个图片,点击右边的next按钮,显示后面的一组(三个)图片.初始化只显示next按钮,到最后一组只显示pre按钮,中间过程两按钮 ...