如何根据用户语言环境、Spring MVC 或 Hybris 在 JSP 上设置 URL
How to set URL on JSP when it depends on user locale, Spring MVC or Hybris
我有一些页面控制器在@RequestMapping 中有几个值,例如:
@Controller
@RequestMapping(value = {"foo", "bar"})
public class FooBarController {...}
在某些 JSP 中,我需要为这个页面控制器设置 URL,但是这个 URL 应该取决于用户区域设置,例如:如果用户选择 EN 区域设置URL 应该是“/foo”的站点,或者如果用户选择 FR 语言环境 URL 应该是 "bar".
问题是如何使用 Spring(或 Hybris),因为我认为 if-else 的条件如下:
<c:when test="${locale == 'EN'}">...</c:when>
在 JPS 上不是很好的解决方案吗?
这取决于您的 link 是如何创建的。
1. 您可以添加 link 本地化的 .properties 文件。例如:
*fr.properties - myLink=/foo
*en.properties - myLink/bar
并在 JSP/TAG.
中使用它
您可以创建自定义 CMSLinkComponent,在其上本地化 url 属性 并将 cms 组件用作 link。
您可以在 AbstractPageController 中设置全局 属性 并将其添加到模型中。像 localePrefix=currentLocale() 这样的东西。之后像这样重命名映射 /fr/foo ; en/foo and use this prefix before the links. ${localePrefix}/foo
我有一些页面控制器在@RequestMapping 中有几个值,例如:
@Controller
@RequestMapping(value = {"foo", "bar"})
public class FooBarController {...}
在某些 JSP 中,我需要为这个页面控制器设置 URL,但是这个 URL 应该取决于用户区域设置,例如:如果用户选择 EN 区域设置URL 应该是“/foo”的站点,或者如果用户选择 FR 语言环境 URL 应该是 "bar".
问题是如何使用 Spring(或 Hybris),因为我认为 if-else 的条件如下:
<c:when test="${locale == 'EN'}">...</c:when>
在 JPS 上不是很好的解决方案吗?
这取决于您的 link 是如何创建的。 1. 您可以添加 link 本地化的 .properties 文件。例如:
*fr.properties - myLink=/foo
*en.properties - myLink/bar
并在 JSP/TAG.
中使用它您可以创建自定义 CMSLinkComponent,在其上本地化 url 属性 并将 cms 组件用作 link。
您可以在 AbstractPageController 中设置全局 属性 并将其添加到模型中。像 localePrefix=currentLocale() 这样的东西。之后像这样重命名映射
/fr/foo ; en/foo and use this prefix before the links. ${localePrefix}/foo