JSP Servlet从外部路径中的属性文件覆盖资源包

时间:2015-01-24 08:05:09

标签: java jsp servlets jstl resourcebundle

我使用JSP / Servlet Application。 我想覆盖ResourceBundle,因为我在外部路径中有属性(不在war内)。 我无法访问JSP中的ResourceBundle。

我的ResouceBundle名称是ApplicationResources.properties。我也有其他语言环境的属性。 在JSP中,fmt标记如下所示

 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
   <fmt:setBundle basename="ApplicationResources" />

在Web.xml中,以下配置用于JSTL

 <context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>ApplicationResource</param-value>
</context-param>

应用程序启动时不执行以下MyResourceBundle。是否需要在web.xml中添加任何配置?

    public class MyResourceBundle extends ResourceBundle {
    public MyResourceBundle(){
            File file = new File("C:\\Prop"); 
            ClassLoader loader=null;
            try {
                URL[] urls = {file.toURI().toURL()};  
                loader = new URLClassLoader(urls); 
                ResourceBundle bundle = ResourceBundle.getBundle("ApplicationResources", Locale.getDefault(), loader);
                setParent(bundle);
            } catch (MalformedURLException ex) { 
                System.out.println("RESOURCe EXCEP");
            }
    }

@Override
protected Object handleGetObject(String key) {
      return parent.getObject(key);
}

@Override
public Enumeration<String> getKeys() {
     return parent.getKeys();
}

}

上面的代码有错误吗? 是否可以覆盖JSP / Servlet中的resourcebundle?

0 个答案:

没有答案