gpt4 book ai didi

Java:如何在运行时将数据库中的属性添加到 ResourceBundle?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:52:58 24 4
gpt4 key购买 nike

背景

我正在使用 Maven 开发 Java Web 应用程序。我已经按照以下路径和格式创建了 ResourceBundle:src/main/resources/i18n/LanguageBundle_xx_XX.properties

一切都完美无缺,我在前端工作(使用 JSTL)。

问题

用户可以从前端创建 KEY/VALUE 对,然后以以下格式存储在 MySQL 数据库中:KEY |

我有一个初始化 servlet,它在将用户带到第一个 jsp 页面之前完成所有设置。

在那个初始化 servlet 中,我从数据库中获取了所有 KEY/VALUE 对,但现在我想将它们添加到 LanguageBundle 中,以便在第一个 jsp 页面出现时准备好翻译。

到目前为止我已经尝试过:

  1. 从数据库中返回所有键/值对
  2. 迭代返回值
  3. 如果 KEY 在 LanguageBundle_xx_XX 中不存在
  4. 使用 property.put("KEY","VALUE") 添加 KEY/VALUE

现在,这确实添加了属性,但是如果我尝试访问该范围之外的特定属性(例如,其他 servlet、jsp),它会失败,因为它不存在于特定的 .properties 文件中。

我该如何解决这个问题?

最佳答案

更新:

我想出了一个可行的解决方案。

Properties prop = new Properties();
InputStream in = getClass().getResourceAsStream("/i18n/LanguageBundle_en_US.properties");
prop.load(in);
prop.setProperty("KEY", "VALUE");
in.close();
prop.store(new FileOutputStream(getClass().getClassLoader().getResource("/i18n/LanguageBundle_en_US.properties").getFile()), null);

有人可以告诉我这是不好的做法还是可以使用?

谢谢。

关于Java:如何在运行时将数据库中的属性添加到 ResourceBundle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38960893/

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