成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Play可以做的5件很酷的事

開發(fā) 后端
通過5個(gè)實(shí)例,透視 Play 框架背后的哲學(xué)。

綁定 HTTP 參數(shù)到 JAVA 方法參數(shù)

用 Play 框架,在 Java 代碼中獲取 HTTP 請(qǐng)求參數(shù)是非常簡(jiǎn)單的,只需要聲明方法的參數(shù)名和 HTTP 請(qǐng)求的參數(shù)名一樣就可以了。

例如,這個(gè)請(qǐng)求:

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

把 date 和 page 聲明為 Java 方法的傳入?yún)?shù),就可以獲取 HTTP 請(qǐng)求中 date 和 page 參數(shù)的值了:

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

Play 框架會(huì)根據(jù)聲明的 Java 參數(shù)類型,自動(dòng)把 HTTP 請(qǐng)求參數(shù)轉(zhuǎn)換成對(duì)應(yīng)的 Java 對(duì)象。

這種自動(dòng)綁定也適用于 任何的 Java 對(duì)象 。

  1. public class Person {  
  2.     public String name;  
  3.     public Integer age;  

一個(gè)簡(jiǎn)單的用于添加用戶的控制器的 action 方法可以像這樣:

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

對(duì)應(yīng)的 HTML 表單域使用復(fù)合的參數(shù)名:

  1. <form action="/Directory/add" method="POST">  
  2.     Name: <input type="text" name="p.name" />  
  3.     Age: <input type="text" name="p.age" />  
  4. </form> 

通過調(diào)用對(duì)應(yīng)的 Java 方法進(jìn)行重定向

Play 沒有等價(jià)于 Java Servlet forward 命令的方法,但是實(shí)現(xiàn)重定向確實(shí)非常簡(jiǎn)單。只需調(diào)用相應(yīng)的 Java 方法,Play 就會(huì)自動(dòng)生成正確的重定向( HTTP Redirect )響應(yīng)給客戶端。

  1. public static void show(Long id) {  
  2.     Article article = Article.findById(id);  
  3.     render(article);  
  4. }  
  5.    
  6. public static void edit(Long id, String title) {  
  7.     Article article = Article.findById(id);  
  8.     article.title = title;  
  9.     article.save();  
  10.     show(id);  

注意在 edit 方法的***,是如何使我們重定向到 show 方法對(duì)應(yīng)的頁(yè)面的。

在任何模板文件中,你可以利用同樣的語(yǔ)法生成鏈接:

  1. <a href="@{Article.show(article.id)}">${article.title}</a> 

將會(huì)生成以下 HTML 內(nèi)容:

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

不要重復(fù)地將 Java 對(duì)象傳遞到模板文件

在大多數(shù)的 Java 框架中,為了把 Java 對(duì)象傳遞到模板文件,通常你需要類似這樣寫:

  1. Article article = Article.findById(id);  
  2. User user = User.getConnected();  
  3. Map<String, Object> model = new HashMap<String,Object>();  
  4. model.put("article", article);  
  5. model.put("user", user);  
  6. render(model); 

使用 Play,你只須這樣寫:

  1. Article article = Article.findById(id);  
  2. User user = User.getConnected();  
  3. render(article, user); 

然后你就可以從模板中獲取相應(yīng)的 Java 變量。這樣剩下了不少重復(fù)無用的代碼…

JPA 持久化

JPA 無疑是目前 Java 領(lǐng)域***的對(duì)象關(guān)系映射框架( ORM )。如果你熟悉 JPA,你會(huì)驚訝于它在 Play 框架中變得如此簡(jiǎn)單。不需要任何配置,Play 會(huì)自動(dòng)啟動(dòng) JPA 實(shí)體管理器,并在代碼發(fā)生修改時(shí)自動(dòng)地同步。

而且如果你使用 Play 提供的 play.db.jpa.Model 作為超類時(shí),它會(huì)幫助你把代碼寫得更漂亮。來看一下:

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

簡(jiǎn)單易用的文件上傳管理

在 Play 框架里文件上傳管理非常簡(jiǎn)單。

以下 HTML 表單:

  1. #{form @uploadPhoto(), enctype:'multipart/form-data'}  
  2.     <input type="text" name="title" />  
  3.     <input type="file" id="photo" name="photo" />  
  4.     <input type="submit" value="Send it..." />  
  5. #{/} 

和這段 Java 代碼:

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

就完成了! 再簡(jiǎn)單不過了吧?

原文鏈接:http://play-framework.herokuapp.com/zh/5things

【編輯推薦】

  1. Play Framework hotswap及源碼分析
  2. Play Framework總結(jié)性介紹
  3. Play Framework 2.0 RC1發(fā)布 Java Web框架
  4. Java容器類分析之List ArrayList Vector
  5. 有可能挑戰(zhàn)Java優(yōu)勢(shì)的四種技術(shù)
責(zé)任編輯:林師授 來源: Playframework中文小站
相關(guān)推薦

2020-05-07 10:26:17

備份文件存儲(chǔ)備份

2015-04-17 09:27:04

程序員

2022-05-13 09:00:00

企業(yè)初創(chuàng)公司技術(shù)債務(wù)

2022-04-19 07:48:16

JavascriptCSS

2020-04-16 09:35:43

機(jī)器學(xué)習(xí)技術(shù)人工智能

2021-12-16 10:42:53

蘋果備忘錄應(yīng)用程序

2011-05-20 08:53:07

HTML 5

2022-05-10 10:39:51

初創(chuàng)企業(yè)技術(shù)債務(wù)

2020-06-04 11:49:46

JavaScript開發(fā)代碼

2013-11-08 10:42:31

Ubuntu 13.1

2011-04-27 09:22:44

Ubuntu 11.0

2023-05-08 19:32:56

2015-11-23 09:50:17

大數(shù)據(jù)

2009-03-10 10:01:00

802.11n無線APDARPA

2021-08-03 10:40:47

混合云云計(jì)算應(yīng)用程序

2020-11-04 07:36:06

Redis二進(jìn)制數(shù)據(jù)庫(kù)

2024-05-31 08:00:59

2013-07-11 10:07:46

Fedora 19

2020-03-11 11:04:41

冠狀病毒技術(shù)企業(yè)

2018-09-10 11:40:26

機(jī)器學(xué)習(xí)數(shù)據(jù)準(zhǔn)備算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品一区三区 | 欧美一区在线视频 | 日本一二三区在线观看 | 欧美日韩电影一区 | 欧美 日本 国产 | 久久久久久国产精品久久 | 欧美精品1区2区3区 免费黄篇 | 一区免费视频 | 欧美亚洲一区二区三区 | 日韩精品在线观看一区二区三区 | 日韩免费一区 | 亚洲视频在线看 | 一区二区视频 | 精品视频一区二区 | 精品国产三级 | 天啪| 亚洲视频精品 | 色久影院 | 4h影视| 97伊人 | 国产伦一区二区三区四区 | 91麻豆精品国产91久久久更新资源速度超快 | 中文字幕亚洲视频 | 亚洲一区免费 | 久久精品国产亚洲a | 欧美一区不卡 | 婷婷五月色综合香五月 | 精品96久久久久久中文字幕无 | 日韩在线观看网站 | 国产精品片 | 日韩成人影院在线观看 | 午夜资源 | 日韩欧美精品在线 | 91久久精品国产91久久性色tv | 91免费在线视频 | 91美女在线观看 | 蜜臀久久| 久久久久久91香蕉国产 | 国产你懂的在线观看 | 亚洲精品免费看 | 亚洲国产欧美在线 |