JSP/servlet从属性文件中读取参数?

at.*_*at. 7 spring jsp servlets jsp-tags spring-mvc

我的JSP页面需要根据它们所处的环境(开发,生产,沙箱等)显示不同的信息.我希望每个环境都有一个属性文件,其中包含它们可能需要的所有参数.如何在JSP页面中引用此文件的属性?

我的想法是:

  • 让servlet以模型对象的形式将属性提供给所有JSP页面,以便我可以像$ {properties.propertyName}一样引用它们.
  • 以某种方式在web.xml中引用此属性文件,然后我可能调用类似$ {context.properties.propertyName}的东西?
  • 而不是属性文件,列出web.xml中的参数并引用JSP页面中的参数.不知道怎么做,但我更喜欢一个更简单的属性文件.

更新 - 我应该提到我使用的是Spring 3.0和Spring webmvc.所以,如果有一些最好的实践方法,使用Spring做到这一点,这是理想的!

Boz*_*zho 9

  • 可以装载使用属性java.util.Properties(或公共配置在a)中ServletContextListenercontextInitialized(..)方法.

  • <listener>在web.xml中注册监听器

  • 然后你Properties存入ServletContext(你可以从事件中获取)(ctx.setAttribute("properties", properties)

  • 然后使用${applicationScope.properties.propName}(如BalusC所说,applicationScope是可选的)访问属性

更新:

最初我认为春天有一些现成的设施,但事实证明并非如此.您有两种选择:

  • 这篇文章解释了类似于我上面的建议,但使用了springPropertyPlaceholderConfigurer

  • 这个答案这个答案允许您公开所有bean,包括一个PropertyPlaceholderConfigurer到servlet上下文.

  • 对于这种情况,OP不清楚:EL中的`applicationScope`部分是可选的. (2认同)