Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当JSP依赖于用户区域设置、SpringMVC或Hybris时,如何在JSP上设置URL_Java_Spring_Spring Mvc_Jakarta Ee_Hybris - Fatal编程技术网

Java 当JSP依赖于用户区域设置、SpringMVC或Hybris时,如何在JSP上设置URL

Java 当JSP依赖于用户区域设置、SpringMVC或Hybris时,如何在JSP上设置URL,java,spring,spring-mvc,jakarta-ee,hybris,Java,Spring,Spring Mvc,Jakarta Ee,Hybris,我在@RequestMapping中有一些页面控制器,其中包含几个值,例如: @Controller @RequestMapping(value = {"foo", "bar"}) public class FooBarController {...} *fr.properties - myLink=/foo *en.properties - myLink/bar 在一些JSP中,我需要设置这个页面控制器的URL,但是这个URL应该取决于用户的语言环境,例如:如果用户选择一个站点的EN语

我在@RequestMapping中有一些页面控制器,其中包含几个值,例如:

@Controller
@RequestMapping(value = {"foo", "bar"})
public class FooBarController {...}
*fr.properties -  myLink=/foo 
*en.properties - myLink/bar
在一些JSP中,我需要设置这个页面控制器的URL,但是这个URL应该取决于用户的语言环境,例如:如果用户选择一个站点的EN语言环境,那个URL应该是“/foo”,或者如果用户选择FR语言环境,那个URL应该是“bar”

还有一个问题,怎么可能使用Spring(或Hybris)呢?因为我认为如果有其他条件,比如:

<c:when test="${locale == 'EN'}">...</c:when>
。。。

在JPS上不是一个很好的解决方案?

这取决于链接的创建方式。 1.您可以将链接添加到本地化的.properties文件中。例如:

@Controller
@RequestMapping(value = {"foo", "bar"})
public class FooBarController {...}
*fr.properties -  myLink=/foo 
*en.properties - myLink/bar
并在JSP/TAG中使用它

  • 您可以创建自定义CMSLinkComponent,在该组件上本地化url属性,并将cms组件用作链接

  • 您可以在AbstractPageController中设置全局属性并将其添加到模型中。类似于localePrefix=currentLocale()的内容。之后,像这样重命名映射
    /fr/foo;en/foo并在链接之前使用此前缀${localePrefix}/foo


  • 如何跟踪区域设置?它是用户属性还是会话中的某个内容?如果是第一个,那么您应该能够从spring获取上下文用户表单。如果是后者,则可以从HttpServletRequest获取会话。然后,您可以根据您在模型中的发现设置该url,并仅使用该值。@mavriksc是的,locale是用户属性,存储在DB中,也包含在会话中。将其存储在hiddenfield或session中,以便在jsp和控制器中具有
    locale.language==“FR”?model.put(“localeBasedURL”http://siteurl/foo“”:model.put(“localeBasedURL”http://siteurl/bar“”