【问题标题】:Spring messages in JavaScript and ThymeleafJavaScript 和 Thymeleaf 中的 Spring 消息
【发布时间】:2014-12-17 09:19:38
【问题描述】:

我将 Thymeleaf 与 Spring MVC 4.1.1 一起使用,并且我希望能够为我的 JavaScript 文件重新使用我的 Spring 消息(使用用户自动检测的语言环境)。例如。我想做:

$('#fooTitle').text(messages['foo.title']);

...而#fooTitle 将包含foo.title 下用户区域设置的值。

最简单的方法是什么?请注意,我想要一个 JavaScript 对象(“字典”)或其他易于导航的数据结构。

【问题讨论】:

    标签: java javascript spring internationalization thymeleaf


    【解决方案1】:

    如果不是最简单的(但承认足够简单),最简洁和最健壮的方法是使用 html5 数据属性将后端数据传递给 js。这样,无论您是否将 javascript 移动到外部文件,它仍然有效。使用一些元素作为容器(选择最适合您的情况)作为 thymeleaf 后端检索到的 i18n 值的载体,然后使用 jQuery 访问它们

    在 html 中:

    <div id="container" th:attr="data-foo-title-txt=#{foo.title}"></div>
    

    在js中:

    $('#fooTitle').text($("#container").data("foo-title-txt"));
    

    另请参阅我较早的类似答案,(尽管此后 OP 没有留下任何生命迹象 :)) , JavaScript, Thymeleaf and localizing text

    【讨论】:

    • 谢谢,这确实很聪明,而且会起作用,但在我的特殊情况下,它根本无法管理!
    【解决方案2】:

    包含本地化消息的最简单方法是:

    $('#fooTitle').text([[#{foo.title}]])
    

    【讨论】:

    • 谢谢,但在这种情况下,JavaScript 文件都被拆分了,我希望能够访问包含所有消息的 JavaScript 对象(“字典”)。
    猜你喜欢
    • 2020-09-18
    • 2015-06-14
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 2021-06-03
    • 2017-10-06
    • 2016-08-01
    • 1970-01-01
    相关资源
    最近更新 更多