struts2 ognl servlet上下文

时间:2013-02-14 18:26:42

标签: struts2 ognl

我有一些像APPVERSION,APPNAME和APPREV这样的常量,我想在我的Struts 2应用程序的每个页面上显示。

根据这些要求,我认为将信息介绍给servletContext并在部署应用程序时加载它会很棒。

我创建了一个实现ServletContextListener的侦听器:

public class ApplicationInitListenerImpl extends GenericVsService implements ApplicationInitListener,ServletContextListener {

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
    }

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        ServletContext sc = sce.getServletContext();        
        sc.setAttribute("appVer",xxx.utils.VConstants.APPVER);
        sc.setAttribute("appName",xxx.utils.VConstants.APPNAME);       
        sc.setAttribute("appRev",xxx.utils.VConstants.APPREV);
    }   
}

然后我在我的web.xml听众中添加了

<listener>
        <listener-class>xxx.listeners.ApplicationInitListenerImpl</listener-class>
</listener>

在我的Tiles模板中,我添加了:

<s:property value="#application.appName"/> - <s:property value="#application.appVer"/>

但我在这里什么都没得到。

如果我从Struts 2 Action中检索servletContext,我可以读取正确的值,因此值设置为ok。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您可以使用

<s:property value="#attr.appName"/> - <s:property value="#attr.appVer"/>

或者

${appName}  -  ${appVer}