如何在Spring IoC XML配置中从web.xml获取display-name

时间:2011-02-01 16:38:09

标签: java spring

确切地说,如何在Spring应用程序上下文配置XML文件中获取存储在应用程序的web.xml中的<display-name>标记下的<web-app>标记的值。

理想情况下,我想要以下内容......

<bean><property value="${servletContext.servletContextName}/></bean>

似乎ServletContext.getServletContextName()做了我想要的但是我似乎无法弄清楚如何在Spring应用程序上下文文件中获取它。

3 个答案:

答案 0 :(得分:5)

好的,答案在Spring 3.0.x中是微不足道的。根据{{​​3}}

的文档
  

已过时。从Spring 3.0开始,因为“servletContext”现在可用作每个WebApplicationContext中的默认bean

所以我决定尝试以下操作并且它有效!

<bean><property value="#{servletContext.servletContextName}/></bean>

由于servletContext对象是隐式定义的,我们可以使用#{}语法通过Spring EL访问它。

答案 1 :(得分:1)

我认为你不能通过XML配置来做到这一点。

可以自动装配bean以接收ServletContext对象(或实现ServletContextAware),并以编程方式从中获取它,但我不认为XML表达式有任何可见性。

答案 2 :(得分:0)

也许试试Expression Language

<bean>
   <property value="#{T(javax.servlet.ServletContext).getServletContextName()}"/>
</bean>

我怀疑如果它有效则会打印null,因为还没有上下文。