Play 可以做的 5 件很酷的事
(原文链接:http://play-framework.herokuapp.com/zh/5things
来自"Playframework中文小站
" )
通过 5 个实例,透视 Play 框架背后的哲学。
用 Play 框架,在 Java 代码中获取 HTTP 请求参数是非常简单的,只需要声明方法的参数名和 HTTP 请求的参数名一样就可以了。
例如,这个请求:
/articles/archive?date=08/01/08&page=2
把 date
和 page
声明为 Java 方法的传入参数,就可以获取 HTTP 请求中 date 和 page 参数的值了:
public static void archive(Date date, Integer page) {
List<Article> articles = Articles.fromArchive(date, page);
render(articles);
}
Play 框架会根据声明的 Java 参数类型,自动把 HTTP 请求参数转换成对应的 Java 对象。
这种自动绑定也适用于 任何的 Java 对象
。
public class Person {
public String name;
public Integer age;
}
一个简单的用于添加用户的控制器的 action 方法可以像这样:
public static void add(Person p) {
p.save();
}
对应的 HTML 表单域使用复合的参数名:
<form action="/Directory/add" method="POST">
Name: <input type="text" name="p.name" />
Age: <input type="text" name="p.age" />
</form>
Play 没有等价于 Java Servlet forward
命令的方法,但是实现重定向确实非常简单。只需调用相应的 Java 方法,Play 就会自动生成正确的重定向( HTTP Redirect )响应给客户端。
public static void show(Long id) {
Article article = Article.findById(id);
render(article);
}
public static void edit(Long id, String title) {
Article article = Article.findById(id);
article.title = title;
article.save();
show(id);
}
注意在 edit 方法的最后,是如何使我们重定向到 show 方法对应的页面的。
在任何模板文件中,你可以利用同样的语法生成链接:
<a href="@{Article.show(article.id)}">${article.title}</a>
将会生成以下 HTML 内容:
<a href="/articles/15">My new article</a>
在大多数的 Java 框架中,为了把 Java 对象传递到模板文件,通常你需要类似这样写:
Article article = Article.findById(id);
User user = User.getConnected();
Map<String, Object> model = new HashMap<String,Object>();
model.put("article", article);
model.put("user", user);
render(model);
使用 Play,你只须这样写:
Article article = Article.findById(id);
User user = User.getConnected();
render(article, user);
然后你就可以从模板中获取相应的 Java 变量。这样剩下了不少重复无用的代码…
JPA 无疑是目前 Java 领域最佳的对象关系映射框架( ORM )。如果你熟悉 JPA,你会惊讶于它在 Play 框架中变得如此简单。不需要任何配置,Play 会自动启动 JPA 实体管理器,并在代码发生修改时自动地同步。
而且如果你使用 Play 提供的 play.db.jpa.Model
作为超类时,它会帮助你把代码写得更漂亮。来看一下:
public void messages(int page) {
User connectedUser = User.find("byEmail", connected()).first();
List<Message> messages = Message.find(
"user = ? and read = false order by date desc",
connectedUser
).from(page * 10).fetch(10);
render(connectedUser, messages);
}
在 Play 框架里文件上传管理非常简单。
以下 HTML 表单:
#{form @uploadPhoto(), enctype:'multipart/form-data'}
<input type="text" name="title" />
<input type="file" id="photo" name="photo" />
<input type="submit" value="Send it..." />
#{/}
和这段 Java 代码:
public static void uploadPhoto(String title, File photo) {
...
}
就完成了! 再简单不过了吧?
(原文链接:http://play-framework.herokuapp.com/zh/5things
来自"Playframework中文小站
" )
分享到:
相关推荐
Play框架中文文档.pdf
安装并配置play环境,及用于打包的ant
[强烈推荐, 文档不多, 很快就可以看完, 看完了, 就会使用play了] 目录 MVC应用程序模型 - 7 - app/controllers - 8 - app/models - 8 - app/views - 8 - 请求生命周期 - 8 - 标准应用程序布局layout - 9 - app...
Play_Framework_框架教手册、配置文档、扩展、打包项目、标签!精品文档五合一!半卖半送!
Play 详细文档。从下载,安装 ,创建 ,调试, 导入Eclipse 。数据库连接,增删改查。
play framework 1.X的绝好入门学习资料,有一个简单的例子,很容易入手
play framework的学习应用文档
play框架文档(英文版) play框架介绍请谷歌一下
一个优于RoR的快速开发框架playframework,完全面向对象,基于jvm的REST框架,文档非常少,上手很容易,从名字上可以看出play就是玩,可以当作游戏一样轻松的玩的框架,这是它的API文档,网页格式.
整理的playframework的一些文档资料。
需要注意的是,MongoDB需要开启ReplicaSet功能,开启方法可以参考官方文档:Deploy Replica Set,也可以使用群友梦境迷离贡献的一键启动脚本,该脚本需要在Git Bash中运行。启动脚本的使用方法如下: 打开Git Bash...
框架id(framework ID) - 141 - 从命令行设置框架id - 142 - 22.生产部署 - 142 - application.conf - 142 - 设置框架为prod模式: - 142 - 定义一个真实的数据库: - 143 - 禁止JPA的自动结构更新: - 143 - 定义一...
playFramework 使用播放框架
ReactiveMongo Play框架这是 2.5、2.6...在GitHub上在或获取帮助手动构建可以从此源存储库构建Play 2的ReactiveMongo。 sbt publish-local要运行测试,请使用: sbt test从Play 2.4开始,需要JDK 1.8+才能构建此插件。
DSCommon 一个在 Play Framework 1.2+ 上加速开发过程的库,为数据建模、文档流实现、数据安全、CRUD 屏幕表单带来了扩展功能。
Dash 是Mac下非常方便的文档查看器,一体化集成了许多常用的文档,但是不内购它的完整版就要在搜索完后等待8秒钟,非常影响开发效率。这个分享是Dash的破解,可以自行在App Store下载最新版本的Dash,然后将Dash.app...
Play (Java) & Bower with AngularJS + Bootstrap ... 包括: * Play Framework 2.2.1 (Java) * 使用 H2 的默认 EBean 设置 * Maven Central 和 Sonatype 包含在解析器中 * Bower 管理的依赖项 * AngularJS * Bootstrap
这是一个入门应用程序,显示了Play的工作方式。 有关更多详细信息,请参阅的文档。 跑步 使用运行它。 如果您从下载了此项目,则将在项目目录中找到sbt的预打包版本: sbt run 然后转到查看正在运行的Web应用程序...
$ cd <repos>/playframework_temp/ $ <activator>/activator-dist-1.3.5/activator run 它应该编译必要的文件,然后在启动本地服务器。 依存关系 前端:矩形的。 后端:使用Java APIWeb应用程序的。 最终:用于...
由Play 框架 2.2x 训练源代码此源代码旨在在 dijit 领导的 play 培训课程中教授 play 框架 2 基础知识。 我们非常热衷于 play 进行服务器端服务交付的方式。 我们尝试在这里与社区分享一些关于游戏框架的经验。 今天...