<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    shinewang

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      53 隨筆 :: 0 文章 :: 200 評論 :: 0 Trackbacks
    本文通過5個例子展示了Play!框架背后的哲學。

    ?

    1. 綁定HTTP參數到Java方法

    通過在Java方法中定義和HTTP參數同名的參數就可以方便的取得HTTP中的參數值。

    例如:

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

    你可以通過定義方法參數來獲取datepage的值:

    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方法就能方便地重定向到另一個actionPlay!會生成正確的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://m.tkk7.com/shinewang/archive/2008/12/25/248237.html


    posted on 2008-12-25 13:09 shinewang 閱讀(2447) 評論(7)  編輯  收藏 所屬分類: JavaPlay!

    評論

    # re: Play with Play! - Play!最酷的5個功能 2008-12-25 13:17 五月天
    學習中  回復  更多評論
      

    # re: Play with Play! - Play!最酷的5個功能 2008-12-25 14:23 HiMagic!
    semantic url  回復  更多評論
      

    # re: Play with Play! - Play!最酷的5個功能 2008-12-25 15:00 @beyongwcm
    不錯,有創意  回復  更多評論
      

    # re: Play with Play! - Play!最酷的5個功能 2008-12-26 14:23 rmn190
    這段時間正在學OFBiz,初看它源碼時發出里面有太多的static方法, 今天看到樓主的static方法,似乎明白了些.

      回復  更多評論
      

    # re: Play with Play! - Play!最酷的5個功能 2008-12-26 14:26 jeasonzhao
    I think there is a lot of efforts needed to integrate Play! into real world.
    So, I am watching.  回復  更多評論
      

    # re: Play with Play! - Play!最酷的5個功能 2008-12-26 15:08 shinewang
    @jeasonzhao
    確實是這樣,play!很多地方是另起爐灶的,和現有ssh的經典架構、tomcat等服務器的集成可能不是很方便。目前使用play!最好還是直接使用它那套東西。當然play!也在努力,例如對spring的集成、對其他服務器的支持就在開發中。  回復  更多評論
      

    # re: Play with Play! - Play!最酷的5個功能 2008-12-26 15:15 shinewang
    @rmn190
    play!有很多有爭議的特性,例如大量static方法,但仔細想像是符合使用情形的,還有public的成員變量來模擬實現屬性,這個是為了敏捷的變通,而我們一邊收的教育是使用private,但好用就行,把對程序的控制權交回給開發者。  回復  更多評論
      

    主站蜘蛛池模板: 亚洲中文字幕无码av| 猫咪社区免费资源在线观看| 国产最新凸凹视频免费| 日韩精品免费一线在线观看| 国产在线a免费观看| 亚洲影视一区二区| 香蕉97超级碰碰碰免费公| 亚洲日本在线免费观看| 四虎成年永久免费网站| 亚洲同性男gay网站在线观看| 亚洲一卡2卡三卡4卡无卡下载| 国产精彩免费视频| 亚洲国产av一区二区三区| 黄网站色视频免费看无下截| 视频免费在线观看| 天天影院成人免费观看| 国产99在线|亚洲| 日本不卡高清中文字幕免费| 亚洲激情在线视频| 久久国产免费观看精品3| 亚洲六月丁香六月婷婷蜜芽 | 怡红院免费全部视频在线视频| 国产亚洲日韩一区二区三区| 亚洲情A成黄在线观看动漫软件| 一区二区视频免费观看| 亚洲成色WWW久久网站| 精品免费人成视频app| 亚洲精品第一国产综合亚AV| 亚洲精品无码成人片在线观看| 亚洲同性男gay网站在线观看| 老司机永久免费网站在线观看| 久久久久亚洲AV无码麻豆| 国产成人无码免费看片软件| 99久久亚洲综合精品成人网| 免费看美女被靠到爽的视频| 国产精品一区二区三区免费| 亚洲成a人片毛片在线| 免费成人黄色大片| 亚洲av永久无码一区二区三区| 亚洲综合精品网站| 男女作爱免费网站|