本文通过
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语言。,算法是为计算机程序高效、彻底地完成任务而创建的一组详细的准则。
在“Play-with-Algorithm-Visualization”这个项目中,包含了多个与算法可视化相关的组件。例如,02-Java-Swing-Basics是Java Swing基础的实现,Swing是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 -...
标题 "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由微信公众号机器之心整理。
同时,文件中的"biaodigit_Play-with-Data-Struc"和"Play-with-Data-Structures-master"可能指向两个版本的资料或项目,"master"通常表示主版本或主分支,意味着这可能是最新的学习资料或项目代码。这样的命名方式...
MOOC课程《Play with Algorithms》通过实践的方式,引导学生通过编程实践来理解和掌握算法知识。课程中不仅包含理论知识的讲解,还包括大量的编程练习,帮助学生巩固理论,并学会将理论应用到实际问题的解决中去。 ...
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"。这个压缩文件包含了深入理解与实践算法的材料,旨在帮助读者提升在计算机编程中的效率,从而更彻底地解决...