2016-12-29 5 views
0

Что касается реализации флеш-сообщения в Play, я видел два пути. Это flash(flashKey, flashMessage) и flash().put(flashKey, flashMessage), где указаны как flashKey, так и flashMessage: String. В чем же разница?В чем разница между вспышкой (a, b) и вспышкой(). Put (a, b) в PlayFramework?

+0

где вы видите 'flash(). Put' можете ли вы предоставить ссылку? https://www.playframework.com/documentation/2.2.x/ScalaSessionFlash#Flash-scope – tgk

+0

oh i see - 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(key, message) является интерфейс RequestBuilder для обновления флэш-сессии. Под капотом он делает точно так же, как и new HashMap<>(flash()).put(key, message) (source here), но похоже, что он делает дополнительный этап обновления запроса печенье

Я считаю, вы должны использовать flash(key, message), чтобы гарантировать, что любые обновления вспышки, сохраняются.

+0

Короче говоря, 'flash(). put (key, message)' просто добавляет данное значение в область флэш-памяти, тогда как 'flash (key, message)' может добавить значение и обновить файл cookie пользователя, не так ли? Если так, как вы интерпретируете этот код (мне очень жаль, что это немного сложно увидеть) 'ctx(). Flash(). Put (flashKey, flashMessage);' И после этого выполняется перенаправление. Предполагаю, что перед добавлением значения в Map нет значения, поэтому на странице перенаправления нет выбора, кроме как использовать значение. –

Смежные вопросы