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

    主站蜘蛛池模板: 国产特级淫片免费看| AV大片在线无码永久免费| 免费一级毛片不卡不收费| 青草久久精品亚洲综合专区| 中文字幕人成无码免费视频| 亚洲AV成人一区二区三区在线看| 1000部夫妻午夜免费| 亚洲国产成人精品青青草原| 114一级毛片免费| 亚洲性无码一区二区三区| 国产乱人免费视频| 色www免费视频| 国产亚洲精品激情都市| 免费在线看污视频| 亚洲黄色高清视频| 一二三四免费观看在线电影| 国产亚洲中文日本不卡二区 | 精品久久久久久亚洲中文字幕| 国产一精品一aⅴ一免费| 免费夜色污私人影院网站电影 | 91高清免费国产自产| 亚洲一区中文字幕在线观看| 午夜a级成人免费毛片| 人碰人碰人成人免费视频| 国产V亚洲V天堂无码| 免费观看激色视频网站bd| 亚洲gay片在线gv网站| 国产亚洲精品福利在线无卡一| 久久这里只精品99re免费| 国产v亚洲v天堂a无| 午夜亚洲av永久无码精品| 黄色片免费在线观看| 亚洲男人的天堂久久精品| 亚洲国产精品成人久久蜜臀| 久久久精品午夜免费不卡| 亚洲熟女www一区二区三区| 亚洲免费在线观看| 免费看片在线观看| 成在人线av无码免费高潮水| 亚洲第一网站免费视频| 亚洲精品第一国产综合精品99|