2016-12-29 142 views
0

就Play中的Flash消息的實現而言,我看到了兩種方式。 那些是flash(flashKey, flashMessage)flash().put(flashKey, flashMessage),其中flashKeyflashMessage都是String。 究竟是什麼區別?flash(a,b)和flash()。put(a,b)在PlayFramework中有什麼區別?

+0

你在哪看到'flash()。put'你能提供一個參考嗎? https://www.playframework.com/documentation/2.2.x/ScalaSessionFlash#Flash-scope – tgk

+0

哦,我看到了 - java https://github.com/playframework/playframework/blob/d43e3e48e7ba6cd1551e3726bd3583a7b13563a2/framework/src/play/ src/main/java/play/mvc/Http.java#L2011 – tgk

回答

0

flash().put(key, message)是Flash類接口,用於將所述給定值的閃光範圍

flash(key, message)是用於更新閃存會話RequestBuilder接口。引擎蓋下它完全一樣new HashMap<>(flash()).put(key, message)source here),但它看起來像它在更新請求中的Cookie

我相信你應該使用flash(key, message),以確保對閃存的任何更新都堅持的額外步驟。

+0

簡而言之,'flash()。put(key,message)'只是將給定的值添加到flash作用域,而'flash(key,message)'可以添加該值並更新用戶的Cookie,對嗎?如果是這樣,你怎麼解釋這個代碼(我很抱歉,這是有點難以看到)'ctx()。flash()。put(flashKey,flashMessage);'然後,重定向完成。我假設在添加值之前Map中沒有值,所以重定向頁面只能使用該值。 –

相關問題