Кэш Следуя языку PlayFramework 2 и ehcache - PullRequest
0 голосов
/ 24 октября 2018

У меня есть приложение Play Framework 2 с интернационализацией.

Я использую встроенный в Play CacheApi (ehCache) со стандартной конфигурацией.Я сделал пример с индексной страницей:

@Inject @NamedCache("session-cache") CacheApi cache;

затем

@Cached(key = "index")
public Result index() {
    //Controller.changeLang("fr");

    return ok(index.render(this.userProvider,"c-layout-header-fullscreen",NEWS_FORM));
}

Когда я запускаю первую страницу и обновляю ее, она, кажется, работает, но у меня есть способ изменить язык (или обнаружитьавтоматически браузер lang / country)

public Result changeLanguage(String code) {
    Controller.changeLang(Language.findByCode(code).code);
    return redirect(controllers.routes.Application.index().toString());
}

, когда я меняю язык, отображается та же страница, что и ранее, кэшированная на первой странице упорядоченного языка.

  1. Как я могуукажите кеш для языка (если у меня есть 3 языка, кешируется страница с 3 разными индексами).Та же проблема для перевода БД. Я хочу получить результат запроса, но, следуя языку, он будет другим.Я хочу кешировать запрос на перевод, потому что он будет использовать много БД.

  2. В чем разница между сессионным кешем, db-кешем, пользовательским кешем?

...