`
阅读更多
play框架2010-03-01 11:35PLAY开发中文手册

PLAY开发实战中文手册

PLAY功能中文手册

PLAY中文API手册

有需要的请MSN联系:hmguo@hotmail.com

PLAY

Play介绍:

Play是一个full-stack(全栈的)Java Web应用框架,包括一个简单的无状态MVC模型,具有Hibernate的对象持续,一个基于Groovy的模板引擎,以及建立一个现代Web应用所需的所有东西。

Play一个Rails-like的Java框架,由于Java语言的局限性,实现一个Rails-like的Java开发框架一直是一个难题。在Java上想体验Rails-like的开发模式,只能选择Grails或者JRuby on Rails。然而这两种框架都是动态语言实现的框架,只是基于JVM而不是基于Java语言本身。动态语言确实有很多优点,但往往难以调试。是否有一个Java语言实现的Rails-like框架?答案是Play!


Play特性:

1.简单的开发周期。该框架可自动编译和重新装载已改变的源文件,reload的速度很快。

2.用play new yourapp命令即可完成程序的80%。

3.高度纯洁的MVC,超好用的ORM。

4.用play eclipsify即可把项目变成标准的Eclipse项目(注:netbeans也行),让你享用IDE的快捷。

5.智能绑定HTTP参数到Java方法参数。

6.基于Apache Mina的快速HTTP服务器(http://mina.apache.org),每秒上千次的请求处理速度。

7.一个基于Groovy的强大的模板引擎,可实现多层继承,定制用户标签等功能。

8.优秀的错误报告功能:发生异常时,该框架会直接显示出错误的源代码,甚至是模板代码。

9.包含了很多开发Web应用需要的功能整合,如它包含支持Spring,Memcached、OpenID、插件系统等。

10.无状态的模型,无共享架构(Share-Nothing Architecture),为REST做好了准备(未来的目标是RESTful架构),具有很好的伸缩性。

11.数据模型方面使用JPA定义数据对象,直接从对象生成数据库。


Play框架概要:

纯Java框架

Play!是一个纯Java实现的Web敏捷开发框架,工程的默认目录结构如下:

构建在HTTP上

Servlet或者Struts之类的Java Web框架对HTTP API进行了抽象和封装,Play!和这些框架的根本上的不同之处就在于Play!提供了对HTTP完全的访问能力。

通过Router绑定URI到Java的方法:

GET    / clients / {id}   Clients.show


高效的模板引擎

我们喜欢JSP和表达式语言背后的思想,但为什么创建一个taglib需要配置这么多的文件,为什么不能提供对model的完全的访问?JSP有太多的局限性,使用起来很麻烦,那么让我们创建一个更好的模板引擎吧。

如果你想实现下面的JSP代码的功能:

<%@ taglib uri = " http://java.sun.com/jsp/jstl/core " prefix = " c " %>
<% @ taglib uri = " http://java.sun.com/jsp/jstl/functions " prefix = " fn " %>
< c:choose >
     < c:when test ="${emails.unread != null && fn:size(emails.unread)}" >
        You've ${fn:size(emails.unread)} unread emails !
     </ c:when >
     < c:otherwise >
        You've none unread emails !
     </ c:otherwise >
</ c:choose >

你会喜欢上下面这种写法:

You ' ve ${email.unread?.size() ?: ' none ' } unread emails !

Play!使用Groovy作为模板语言,这是一种和Java语法极为相似的语言,并且可以无缝的使用Java类库,可以将其看作是动态的Java语言。

具有生产效率的Java

Play5个例子:

1. 绑定HTTP参数到Java方法

通过在Java方法中定义和HTTP参数同名的参数就可以方便的取得HTTP中的参数值。

例如:/articles/archive?date=08/01/08&page=2

你可以通过定义方法参数来获取date和page的值:

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


也可以直接绑定到类:

public class Person {
String name;
Integer age;
}

public static void add(Person p) {
p.save();
}

HTML中如下定义:

<form action="/Directory/add" >
Name: <input type="text" name="p.name" />
Age: <input type="text" name="p.age" />
</form>


2. 通过调用Java方法重定向到相应的action

只需要调用相应的Java方法就能方便地重定向到另一个action,Play!会生成正确的redirect response,而不是forward。

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>

最终生成的HTML:

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


3. 直接把Java对象传递到页面模板

在大多数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);


4. 方便的文件上传

在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) {
   
}


5. 不用任何配置就可以把应用分布到多个JVM

由于应用程序被设计成无状态的,所以你可以简单地在多台服务器上启动同一个应用,然后通过HTTP层面的负载均衡来实现分布式应用。不需要设置一个负债的服务器集群。

分享到:
评论

相关推荐

    play框架学习手册

    Play框架是一款基于Java的全栈Web开发框架,它的设计理念是帮助开发者使用最小的配置和编码来构建高性能、可扩展的Web应用。本手册将详细介绍Play框架的核心概念、安装配置、项目结构、基本使用和高级特性。 **一....

    play框架的简单增删改查

    Play框架是Java领域的一款轻量级、开源的Web应用框架,它基于MVC(Model-View-Controller)架构模式,提供了简洁的API和强大的工具,使得开发者能够快速地构建高效、可测试的Web应用程序。本项目是针对初学者设计的...

    Play框架的一个demo

    Play框架是一个开源的Java和Scala应用开发框架,它遵循模型-视图-控制器(MVC)架构模式。Play强调简洁的代码和实时反馈,使得开发过程更为高效。它支持TDD(测试驱动开发),并且与现代Web技术如HTML5、CSS3和...

    play框架手册完整版本

    Play框架是基于Java和Scala的开源Web应用框架,遵循MVC(Model-View-Controller)设计模式,旨在简化Web开发过程。它强调代码即路由、轻量级、快速开发和可测试性,使得开发者能够更加专注于业务逻辑,而不是底层...

    Play框架中文文档.pdf

    Play框架中文文档.pdf

    play 框架使用ajax的例子

    Play框架是基于Java和Scala的开源Web应用框架,遵循MVC(模型-视图-控制器)设计模式。它强调简洁的代码结构和开发效率,同时提供了对AJAX的强大支持,使得开发者可以轻松创建交互式的、响应式的Web应用程序。在本...

    scala PLAY 框架 sbt仓库

    Scala Play框架是一款基于Java和Scala的开源Web应用框架,它以简洁、高效和模块化著称,被广泛用于构建现代的、反应式的Web服务。在Play框架中,sbt(Simple Build Tool)是默认的构建工具,它允许开发者管理项目...

    任务管理系统(基于play框架)

    【任务管理系统(基于Play框架)】 任务管理系统是一种用于组织、跟踪和管理个人或团队工作的软件应用。在本项目中,该系统是建立在Play框架之上,这是一个强大的全栈Web应用框架,采用Java和Scala语言,提供了高效...

    play框架 JPA注解

    在Play框架中,Java Persistence API (JPA) 是用于处理对象关系映射(ORM)的一个组件,使得开发者可以方便地将Java对象与数据库表进行交互。本文将深入探讨在Play Framework中JPA注解的使用。 1. **@Entity(name=...

    play 框架学习

    Play框架是一种基于Java的轻量级、高性能的Web应用程序开发框架,特别注重开发效率和敏捷开发。它采用了无状态的MVC架构,支持RESTful设计原则,使得HTTP请求可以直接映射到代码,避免了通过Servlet等中间层的复杂性...

    play框架搭建环境步骤

    play框架的搭建步骤,是我自己学习的总结

    JAVA PLAY框架入门学习手册

    JAVA PLAY框架入门学习手册 Java PLAY框架是基于Java语言的Web应用程序框架,旨在提高Web应用程序的开发效率和可维护性。下面是Java PLAY框架的入门学习手册,涵盖了框架的主要概念、目录结构、请求生命周期、HTTP...

    play框架+一个helloworld例子

    此资源是整个play框架外加一个helloworld小例子,下载解压到文件夹中可以直接进行play框架开发。

    Play框架手册

    ### Play框架核心概念详解 #### 一、Play框架与MVC模式 Play框架是一款轻量级、高效的Java和Scala Web开发框架,它基于MVC(Model-View-Controller)架构模式设计,旨在简化Web应用程序的开发流程。MVC模式将应用...

    play框架jar包

    play框架jar包,java开发人员使用play框架开发项目时的必备jar包

    play框架 2.1 api

    play框架 2.1 api

    play框架教程前6章

    【Play框架教程前6章】是一份针对Play框架的中文教程,旨在引导初学者通过创建一个实际的Web应用来学习Play框架。这个教程分为多个独立的部分,涵盖了从基础到更高级的功能,包括验证、错误处理、安全框架、自动化...

Global site tag (gtag.js) - Google Analytics