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

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

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

    posts - 56, comments - 77, trackbacks - 0, articles - 1
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    需求是表單提交后, 轉(zhuǎn)到另外一個(gè)已經(jīng)存在的頁(yè)面, 并在頁(yè)面上方的空白處顯示一條醒目的消息, 而且只顯示一次 (刷新后這條消息不應(yīng)該再出現(xiàn)).

    對(duì) Web 開發(fā)相當(dāng)不熟,  Pair說這需求類似 RoR里的 flash message, 問Java里有沒有.  我們用SpringMVC + Velocity, 看了看文檔, 問了問人, 短時(shí)間沒有得到確定方案.

    那就試一試吧, 明知幾乎不可能成功, 還是寫下了下面的代碼:

    model.put("flashMessage""I'm stupid");
    return new ModelAndView(new RedirectView("anotherPage"),  model);

    果然不行,  model無法跨Controller.  那就放在Session里?  以我有限的Web經(jīng)驗(yàn), 應(yīng)該可以, 問題是何時(shí)把它從Session中清除?

    這應(yīng)該是一個(gè)概念: 你放一個(gè)東西到Session里, 但你只能獲得一次, 下次它就不存在了.

    用類來表示概念,  我們只需在生成對(duì)象時(shí)把自己加到Session里, 在提供的獲取函數(shù)中把自己從Session中移除, 那么第二次你就得不到它了.

    import javax.servlet.http.HttpSession;

    public class ThrowawayObject {
        
    private HttpSession session;
        
    private String attribute;
        
    private Object value;

        
    public ThrowawayObject(HttpSession session, String attribute, Object value) {
            
    this.session = session;
            
    this.attribute = attribute;
            
    this.value = value;

            session.setAttribute(attribute, 
    this);
        }

        
    public Object getValue() {
            session.removeAttribute(attribute);
            
    return value;
        }
    }


    在 Controller 里, 只需:

    new ThrowawayObject( session, "flashMessage""I'm Stupid" );


    在 View 里, 這里是 velocity 模板:

    #if($flashMessage)
    <script language="javascript">
        showNotificationMsg(
    "$flashMessage.value")
    </script>
    #end


    那么在 Spring MVC 中實(shí)現(xiàn)這類功能的標(biāo)準(zhǔn)做法是什么樣的? 其它Java Web 框架呢?


    評(píng)論

    # re: ThrowawayObject :在Java中實(shí)現(xiàn)Rails里的Flash Message  回復(fù)  更多評(píng)論   

    2008-10-06 22:51 by 隔葉黃鶯
    不錯(cuò),受教了

    # re: ThrowawayObject :在Java中實(shí)現(xiàn)Rails里的Flash Message  回復(fù)  更多評(píng)論   

    2008-10-07 20:44 by simbas
    可以看看grails的flash的實(shí)現(xiàn)

    # re: ThrowawayObject :在Java中實(shí)現(xiàn)Rails里的Flash Message  回復(fù)  更多評(píng)論   

    2010-01-21 04:00 by guest
    controller 里面設(shè)置session值
    template/view里面刪除session值
    pylons里面是這樣做的。

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲欧洲日韩国产| 国产精品亚洲成在人线| 精品亚洲成A人无码成A在线观看| 97视频免费观看2区| 亚洲系列国产精品制服丝袜第| 99re在线视频免费观看| 亚洲综合免费视频| 国产又黄又爽又猛免费app| 亚洲六月丁香六月婷婷色伊人| 日本XXX黄区免费看| 在线精品亚洲一区二区 | 免费日本一区二区| 亚洲AV日韩AV高潮无码专区| 污视频在线免费观看| 久久久亚洲裙底偷窥综合| 4虎永免费最新永久免费地址| 亚洲最大福利视频| 国产gav成人免费播放视频| 乱人伦中文视频在线观看免费| 国产美女亚洲精品久久久综合| 久久青青草原国产精品免费| 亚洲激情电影在线| 国产精品免费看香蕉| 国产人成网在线播放VA免费| 亚洲黄色在线视频| 成人a视频片在线观看免费| 四虎一区二区成人免费影院网址| 亚洲国产精品无码久久一线| 18禁网站免费无遮挡无码中文| 亚洲成av人在线观看网站| 亚洲综合区小说区激情区| 91精品导航在线网址免费| 中文有码亚洲制服av片| 在线亚洲97se亚洲综合在线| 日本人的色道免费网站| 美女视频黄频a免费观看| 亚洲AV综合色区无码一区爱AV| 69成人免费视频无码专区| 一级视频免费观看| 亚洲一区在线免费观看| 亚洲国产精品嫩草影院久久 |