经过几天的努力,我发现自己已经意识到我应该早点问过这个问题。
我有一些属性文件,以.properties结尾,但我不在乎它们最终被命名。
我有一个数据库。数据库将存储在JSP中为给定用户显示字符串时要使用的属性文件的名称。
我在spring-mvc的帮助下提供了一些JSP页面。 JSP页面最不灵活......它们已编码为使用以下语法显示属性文件中的字符串:<fmt:message key="someVariable.fromPropertiesfile"/>
这是需要发生的事情:
用户登录并根据他们是哪个用户,从数据库中检索要用于该用户的属性文件的名称。然后“以某种方式”,应用程序需要将这些值与该用户的会话相关联,以便JSP能够访问。
对于所有用户的单个属性文件的情况,已经解决了这个问题,已经编写了JSP。因此,如果可能的话,首选,这是一个不需要修改所有JSP的解决方案。
我发现的任何远程操作的例子都没有考虑到在应用程序的java代码中选择了属性文件。
请说明,假设应用程序的java代码选择了属性文件的名称,我可以通过我的所有JSP加载.properties文件,以便在该会话中使用。如果我上面引用的语法不起作用,请提供一个真实的例子。
我试图使用PropertyPlaceholderConfigurer和经常建议的ReloadableResourceBundleMessageSource来解决这个问题,并且每次都失败了。
这不是关于如何本地化,语言不会改变的问题,也不是有问题的Locale。
根据评论进行编辑:
jsp的顶部都有以下内容。然而,编辑它比编辑使用指定代码显示属性值的所有位置更加可口。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib tagdir="/WEB-INF/tags/xf" prefix="xf" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>