gpt4 book ai didi

java - Rythm:根据请求创建新引擎或在现有引擎实例上设置语言/区域设置

转载 作者:行者123 更新时间:2023-11-30 02:54:47 26 4
gpt4 key购买 nike

Rythm 可以用作单例或实例化为普通对象。目前,我在 Web 应用程序的 Servlet Init() 方法中实例化它一次。 (这几乎与使用单例相同,因为我只创建它一次)

现在我需要向我的网站添加 i18n 支持,并且需要在渲染之前动态设置语言。

我可以这样做:

engine.setLocale(userLocale);
engine.render(template,arguments);

我假设如果我使用单例(或在 servlet 中创建的单个实例),那么我可能会在两个语句之间出现竞争条件。

  1. 这是正确的还是没有竞争条件?
  2. 我应该为每个请求创建一个 Rythm 实例吗?
  3. 是否有其他方法可以在不更改引擎状态的情况下更改每次渲染的语言?

最佳答案

首先,在最新版本的 rythm 中,您应该调用 engine.prepare(Locale),而不是 engine.setLocale(Locale)

现在回答您的问题:

  1. Is this correct or is there no race condition?

它不会导致竞争条件,因为在代码内部它使用 ThreadLocal 来存储渲染设置

  1. Should I create a Rythm instance for each request?

绝对

  1. Is there another way to change the language for each rendering without changing the engine state?

语言和区域设置不是引擎级别状态,它们是根据请求状态。但是默认语言和区域设置可以在引擎级别进行配置

关于java - Rythm:根据请求创建新引擎或在现有引擎实例上设置语言/区域设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37575677/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com