本文通过
5个例子展示了
Play!框架背后的哲学。
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 With Play!系列目录
http://www.blogjava.net/shinewang/archive/2008/12/25/248237.html
分享到:
相关推荐
--- Support Karaoke play! Can Delete melody tracks in a MIDI file to get a "karaoke play MIDI song"! --- Multi-tracks recording! --- Drum mode! --- Support macro (OTS -- One Touch Setting)! --- ...
"Play-with-Machine-Learning-Algorithms-master" 是一个项目,旨在帮助初学者和进阶者深入理解并实践机器学习算法。这个项目覆盖了从基础到复杂的多种算法,是提升机器学习技能的理想资源。 首先,我们要了解机器...
《Play-with-Data-Structures-master》是一个涵盖了数据结构基础到高级应用的全面教程,包含1-12章的源代码实现。这个课程是学习和深入理解数据结构的理想资源,对于计算机科学的学生、程序员以及对算法和数据结构有...
"Play-with-Algorithms-master_teethwru_algorithms_算法实现_"这个项目显然旨在帮助学习者深入理解并实践经典的排序算法。以下是对这些算法的详细说明: 1. **希尔排序**:希尔排序是一种改进的插入排序,由希尔...
《Play-with-Algorithm-Visualization》这个项目是关于算法可视化代码的集合,主要源自某在线课程。算法可视化是一种将算法过程以图形方式展示的技术,有助于学习者直观理解算法的工作原理和执行流程。在这个压缩包...
Algorithm-Play-with-Data-Structures.zip,我的MOOC课程代码中的游戏数据结构>。更新的内容和做法也包括在内。并用Java语言编写了Java语言。,算法是为计算机程序高效、彻底地完成任务而创建的一组详细的准则。
It seems that -7YZ builds became -4YZ with Google Play services 6.5. If you were on -7YZ before, you should now install -4YZ. Looks like -8YZ builds are for Android TV. Examples: -014 for Android -...
Codes of my MOOC Course <Play with Algorithm Visualization>. Updated contents and more demos or practices are also included. Java 迷宫求解问题 迷宫求解问题 迷宫求解问题 迷宫求解问题 迷宫求解问题
标题 "With-a-single-machine-to-play-music.zip_play" 暗示了这是一个关于使用单片机进行音乐播放的项目,而描述中提到“在KEIL环境下运行”表明这是基于KEIL开发工具进行的编程实现。 KEIL是Microchip Technology ...
但是我们可以在一个完全不同的类里定义一些拦截器,然后在任何控制器里使用@With注释来链接他们。 - 42 - Session和Flash作用域 - 42 - 04.模板引擎 - 43 - 模板语法 - 43 - Expressions: ${…} - 44 - Template ...
<Play with Linear Algebra>.玩转线性代数.代码
抠图工具play_with_pictures破解版
鄙人仅是资源搬运工,今天看了原版英文后机器之心公众号立马更新了中文翻译...在此申明,中文翻译Mastering Chess and Shogi by Self_Play with a General Reinforcement Learning Algorithm由微信公众号机器之心整理。
With Play you get the power of Scala's strong type system and functional programming model, and a rock-solid Java API that makes it a snap to create stateless, event-driven, browser-based ...
"Play-with-Algorithms-master.zip" 是一个专为程序员设计的资源包,包含了丰富的数据结构代码实现,旨在帮助我们深入理解和实践这些重要的概念。 首先,让我们从“数据结构”这一概念开始。数据结构是指在计算机中...
Laravel开发-play-docker-laravel 玩Docker
R中地图可视化的小总结 O(∩_∩)O~~
《算法:玩转算法》是由刘玉波编著的一部关于算法学习的资源包,名为"Algorithm-Play-with-Algorithms.zip"。这个压缩文件包含了深入理解与实践算法的材料,旨在帮助读者提升在计算机编程中的效率,从而更彻底地解决...
CORS 插件这个插件为 Scala Play 添加了支持! 框架应用程序。特征为对应用程序的所有请求提供飞行前 OPTIONS 响应。 提供一个 Play 过滤器,它将所需的 CORS 标头附加到每个 HTTP 请求。可配置配置您可能需要的任何...
5. `LICENSE`:文件包含了许可协议信息,决定了你可以如何使用这些源码。常见的开源许可协议有MIT、GPL、Apache等,具体要看文件内容来确定。 6. `README`:通常是一个简短的文档,概述了项目的目的、安装步骤、...