<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 閱讀(2436) 評論(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,但好用就行,把對程序的控制權交回給開發者。  回復  更多評論
      

    主站蜘蛛池模板: a毛片免费全部播放完整成| 很黄很污的网站免费| 国产电影午夜成年免费视频| 久久久影院亚洲精品| av网站免费线看| 日韩一卡2卡3卡4卡新区亚洲| 亚洲人成图片小说网站| 国产精品成人69XXX免费视频| 亚洲精品国自产拍在线观看| 九九全国免费视频| 台湾一级毛片永久免费| 亚洲国产日韩在线成人蜜芽| 久久久久免费看黄A片APP| 亚洲精品123区在线观看| 毛片免费观看视频| 亚洲国产欧美日韩精品一区二区三区| 免费的黄色的网站| 亚洲毛片不卡av在线播放一区| 成人午夜免费视频| 18禁超污无遮挡无码免费网站国产 | 中文字幕免费观看全部电影| 亚洲伊人久久大香线蕉综合图片| 久久免费美女视频| 亚洲伊人久久大香线焦| 午夜无遮挡羞羞漫画免费| 黄页网站在线观看免费| 久久久久久a亚洲欧洲aⅴ| 久热中文字幕在线精品免费| 亚洲精品乱码久久久久久久久久久久 | 中文字幕亚洲无线码| 亚洲a一级免费视频| 亚洲高清有码中文字| 国产91精品一区二区麻豆亚洲| 学生妹亚洲一区二区| 夜色阁亚洲一区二区三区| a毛片在线看片免费| 亚洲人成伊人成综合网久久| 免费中文字幕在线观看| 午夜影院免费观看| 老牛精品亚洲成av人片| 亚洲国产精品不卡在线电影|