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 ...
随机推荐
- 窥探Swift系列博客说明及其Swift版本间更新
Swift到目前为止仍在更新,每次更新都会推陈出新,一些Swift旧版本中的东西在新Swift中并不适用,而且新版本的Swift会添加新的功能.到目前为止,Swift为2.1版本.去年翻译的Swift ...
- golang 字符串操作实例
package main import s "strings" import "fmt" var p = fmt.Println func main() { p ...
- Java多线程系列--“JUC锁”01之 框架
本章,我们介绍锁的架构:后面的章节将会对它们逐个进行分析介绍.目录如下:01. Java多线程系列--“JUC锁”01之 框架02. Java多线程系列--“JUC锁”02之 互斥锁Reentrant ...
- windows配置xhprof,PHP性能分析工具
本来以为配置这么一个工具不会费很大的力气,后面发现完全不是. 一.小插曲 早上显示电脑不能显示虚拟目录下的所有域名,但是能打开localhost,数据库连接也不行了.这个问题纠缠了我一个上午.对了还有 ...
- 1Z0-053 争议题目解析498
1Z0-053 争议题目解析498 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 498.The database Is configured in ARCHIVELOG mode ...
- EXP/IMP迁移案例,IMP遭遇导入表的表空间归属问题
生产环境: 源数据库:Windows Server + Oracle 11.2.0.1 目标数据库:SunOS + Oracle 11.2.0.3 1.确认迁移需求:源数据库cssf 用户所有表和数据 ...
- spring整合hibernate的时候报异常org.hibernate.HibernateException: createQuery is not valid without active transaction
在整合Spring4+hibernate4时候,当代码执行到dao中CRUD操作时,报了一个异常, org.hibernate.HibernateException: createQuery is n ...
- 9.Struts2在Action中获取request-session-application对象
为避免与Servlet API耦合在一起,方便Action类做单元测试. Struts2对HttpServletRequest.HttpSession.ServletContext进行了封装,构造了三 ...
- 一个简单的Webservice的demo,简单模拟服务
前段时间一直在学习WCF,匆匆忙忙的把<WCF全面解析>和<WCF服务编程>看了一遍,好多东西都不是很懂,又听了一下WCF分布式开发的网络教程,算是马马虎虎的明白点了.回顾了一 ...
- 使用CodeFirst创建并更新数据库
本文主要介绍如何使用CodeFirst模式来新建并更新数据库 在使用Entity Framwork的三种方式(ModelFist.DBFirst.CodeFirst)中,CodeFirst方式书写的代 ...