gpt4 book ai didi

spring - 支持 Apache Tiles 中的动态标题和翻译标题

转载 作者:行者123 更新时间:2023-12-03 02:46:24 24 4
gpt4 key购买 nike

我有一个使用 Apache Tiles 的 Spring MVC 项目。我已经实现了可以从消息源读取标题,如下所示:

<tiles-definitions>    
<definition name="some-definition" extends="public.base">
<put-attribute name="title" value="some-definition.title" cascade="true" />
</definition>
</tiles-definitions>

在我的模板文件(由 public.base 定义)中,我执行以下操作:

<title><spring:message text="" code="${title}" /></title>

现在这对于静态翻译标题非常有用,但我也想支持动态标题,例如用于显示公司名称。我可以这样做:

<tiles-definitions>    
<definition name="some-definition" extends="public.base">
<put-attribute name="title" expression="${company.name}" />
</definition>
</tiles-definitions>

然后只需在我的模板中输出标题,如下所示:<c:out value="${title}" /> 。然而,问题是我的代码由于 title 的值而中断。属性不再是消息键。我希望能够支持以下场景:

  1. 静态标题,例如“关于我们”
  2. 纯动态标题,例如“${company.name}”
  3. 带有翻译内容的动态标题,例如“欢迎来到${company.name}”

理想情况下,我可以在消息源中使用表达式语言,但我无法让它发挥作用。我已经尝试了很多不同的解决方案,但似乎找不到合适的解决方案。如果我可以在消息源中使用表达式语言,那么这会很容易。例如,是否可以以某种方式执行以下操作?

some-definition.title = Hello there, ${company.name}

在我的模板中:

<spring:message text="" code="some-definition.title" var="test" />
<c:out value="${test}" />

上面的代码不起作用,因为它输出 ${company.name}而不是变量的实际内容。有没有办法让这样的事情发挥作用?或者还有其他方法可以支持我上面列出的场景吗?

我考虑过创建一个自定义 JSTL 标记,在其中解析纯 Java 代码中的字符串表达式(已翻译的字符串),但我意识到我可能必须显式指定“变量替换”的根对象“上类,as documented here 。那么它看起来不像是一个动态解决方案。

有什么方法可以完成这个任务吗?非常感谢任何帮助!

最佳答案

图 block 定义的本地化有帮助吗? 引用http://tiles.apache.org/framework/tutorial/advanced/l10n.html

否则我会研究一个 ViewPreparer 来为您扩展 spring 消息。

关于spring - 支持 Apache Tiles 中的动态标题和翻译标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29491353/

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