`

你可以使用 play framework 做5件很爽的事情

阅读更多
随便翻译了一下子,比较关注 Play framework 。Play 有好有坏,不管好还是坏,我就是玩一玩Play。(本人注)

1.绑定HTTP参数到JAVA方法里的参数。

使用PLAY可以很简单的从JAVA代码中检索HTTP参数。只要把方法参数申明成和HTTP参数相同既可。

比如,这个request:

/articles/archive?date=08/01/08&page=2


只要把date,page声明成JAVA方法的参数,你就可以检索它们:

public static void archive(Date date, Integer page) {
    List<Article> articles = Articles.fromArchive(date, page);
    render(articles);
}



PLAY将使用该方法的参数的静态类型,来把HTTP值翻译成JAVA对象。

智能绑定对任何的类都有效。

public class Person {
    public String name;
    public Integer age;
}


一个简单的控制器,比如向Person添加一个实例可能会像这样:

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>


2.重定向到一个action调用相应的Java方法。

Play框架的forward并不等同Servlet中的forward,它有自己的forward,并且重定向到另一个ACTION非常的简单。只需要调用相应

的JAVA方法,PLAY框架就会生成正确的HTTP “Redirect” response。

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 action 结束时,我们如何重定向到 show action。

在任何模板中,你可以使用类似这样的方法来生成连接。

<a href="@{Article.show(article.id)}">${article.title}</a>
That will generate the following HTML:

<a href="/articles/15">My new article</a>


3.当传递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本地名字中检索对象,这样可以少写不少代码。


4. 更高效的JPA

在PLAY框架中使用JPA是非常简单的,无需要任何配置,当代码加载时,PLAY框架会使用HIBERNATE自动开启JPA Entity Manager并且神奇的使它同步。

此外,如果你使用play.db.jpa.Model超类,将有助于使你的代码更漂亮。如下:

public void messages(int page) {
    User connectedUser = User.find("byEmail", connected());
    List<Message> messages = Message.find(
        "user = ? and read = false order by date desc",
        connectedUser
    ).from(page * 10).fetch(10);
    render(connectedUser, messages);
}



5. 简单的文件上传管理

文件上传管理在PLAY框架中非常简单。

下面这个HTML form:

<form action="@{Article.uploadPhoto()}" method="POST" enctype="multipart/form-data">
    <input type="text" name="title" />
    <input type="file" id="photo" name="photo" />
    <input type="submit" value="Send it..." />
</form>

对应的JAVA方法:

public static void uploadPhoto(String title, File photo) {
   ...
}


还能更简单么?


分享到:
评论

相关推荐

    play framework api,play! framework api,play api

    Play Framework API 是开发者使用该框架进行开发时的重要参考资料。 在描述中提到的"play framework api,play! framework api,play api"都是指Play Framework的API文档,它包含了框架的所有公共类、方法和接口,供...

    playframework中文教程.zip

    这个“playframework中文教程.zip”压缩包很可能是为了帮助中文用户更好地理解和学习Play Framework而准备的资源。 Play Framework 的主要特点包括: 1. **轻量级**:与传统的Java EE规范相比,Play Framework ...

    Play Framework Cookbook.pdf

    无论是初学者还是有经验的开发人员,都可以从中学习到如何有效地使用 Play Framework 来构建高效稳定的 Web 应用。 - **核心章节内容**: - **基础设置与配置**:包括环境搭建、项目初始化、配置文件解读等基础...

    Play framework框架

    五、Play Framework框架的应用 Play Framework框架的应用非常广泛,可以用于开发各种类型的Web应用程序,如企业级应用程序、社交媒体应用程序、移动应用程序等。 六、Play Framework框架的路由机制 Play ...

    Play Framework

    1. Play Framework 介绍 2. 创建和发布 Play 应用 2.1 创建 Play 的工程 2.2 Play 常用指令 2.3 Play 应用的 JVM 调优 3. 如何读取静态资源 4. Play框架的配置文件 5. 使用 Play 框架开发 Java 应用 5.1 HTTP...

    Play Framework2本教程

    模板引擎允许你使用声明式语法来创建动态内容。 5. **异步编程**:Play基于Akka框架,支持非阻塞I/O和异步处理,这使得它在处理高并发请求时表现优秀。通过Future和Promise对象,你可以编写高效的并发代码。 6. **...

    Play Framework Cookbook

    - **RESTful API 设计**:Play Framework 鼓励使用 RESTful API 设计原则,这有助于创建清晰、一致且易于使用的接口。书中会有详细的案例分析,展示如何创建符合 REST 规范的服务端点。 - **实时应用**:通过 ...

    PlayFramework框架验证.pdf

    为了支持国际化的错误消息,PlayFramework遵循Java的国际化惯例,错误消息可以从消息包(message bundle)中获取,其中包含的key可以指向一个消息包中的条目,使得错误消息可以针对不同的语言进行翻译。 在Play...

    playframework javaweb

    playframework javaweb playframework javaweb

    playframework 框架学习之路 1

    Play Framework 是一个基于Java和Scala的开源Web应用框架,它遵循模型-视图-控制器(MVC)架构模式。在“Playframework框架学习之路 1”中,我们可能要探讨这个框架的基础概念、安装过程以及如何创建一个简单的应用...

    Play framework 2.0 -第一个应用程序

    《Play Framework 2.0 - 创建你的第一个应用程序》 Play Framework 2.0 是一个开源的Web应用框架,它基于Scala和Java语言,遵循“模式-动作”(Action)架构,提供了一种轻量级、敏捷开发的方式。本篇文章将引导你...

    playframework框架项目部署文档

    《Play Framework框架项目部署详解》 Play Framework是一个强大的、基于Java和Scala的开源Web应用程序框架,它采用模型-视图-控制器(MVC)架构模式,以简洁的API和直观的开发体验受到开发者喜爱。本篇文章将详述...

    Mastering Play Framework for Scala

    Mastering Play Framework for Scala

    playFramework1.2.3

    5. **内置数据库支持**:Play Framework集成了JPA(Java Persistence API),并默认支持H2内存数据库,使得开发者可以快速进行原型开发。同时,它也支持其他关系型数据库,如MySQL、PostgreSQL等,通过简单的配置...

    play,play framework资料大全

    Play Framework 是一个基于Java的开源Web应用框架,它遵循MVC(模型-视图-控制器)架构模式,致力于...通过深入学习这些资料,你可以掌握使用Java进行Web开发的新技巧,提升开发效率,让你的Java应用开发变得更加轻松。

    play framework2.01 part1

    play framework2.01上半部分。

    Play framework 2.0入门教程(三)的源代码,Play留言板

    这个入门教程的第三部分是关于如何使用Play Framework构建一个简单的留言板应用。在这里,我们将深入探讨Play Framework的核心概念和关键组件,以及如何通过源代码实现这个留言板功能。 首先,Play Framework采用...

    play framework测试项目

    在实际开发中,你可以使用Play的命令行工具进行各种操作,如启动服务器、运行测试、生成新的控制器或模型等。例如,`play run`命令会启动开发服务器,并且在代码变更后自动重新编译和加载,实现热部署。 总的来说,...

    playframework做的demo

    在这个“playframework做的demo”项目中,我们可以深入探讨Play Framework的一些核心特性,以及如何利用它来构建一个博客系统。 1. **路由(Routes)**:在Play Framework中,路由文件定义了URL模式到控制器方法的...

    play framework 框架手册 word 版

    《Play Framework 框架手册》是一份深入介绍Play框架的文档,主要涵盖了从基础概念到高级特性的全面内容,适合初学者和经验丰富的开发者参考。以下是对手册中部分核心知识点的详细阐述: 1. **MVC应用程序模型**:...

Global site tag (gtag.js) - Google Analytics