繁体   English   中英

将属性应用于JSP页面

[英]Apply attributes to JSP pages

我想做的是将项目中的每个JSP页面与一个属性相关联。 可以说,我有三页:

helloWorld.jsp
helloUniverse.jsp

此处的属性为“操作”。 有没有一种方法可以像这样将它们应用于他们:

helloWorld.jsp -> Operation: "HelloWorld"
helloUniverse.jsp -> Operation: "HelloUniverse"

这样就可以从ServletContextListener获得它们:

public void contextInitialized(final ServletContextEvent event) {   
    final ServletContext ctx = event.getServletContext();

    // Following is the code I wish for:
    List<Class<Servlet>> pages = ctx.getAllPages();
    for(Class<Servlet> page : pages) {
        operationMap.put(page.getName(), page.getAttribute("operation"));
    }
}

我知道它看起来牵强。.但是这样可能吗?

好的,首先使用静态方法:创建一个operation.properties并逐行添加所有操作值。

  HelloWorld=helloWorld.jsp
  HelloUniverse=helloUniverse.jsp

这只是一个理论,但:

<servlet>
<servlet-name>helloWorldJsp</servlet-name>
<jsp-file>/helloWorld.jsp</jsp-file>
<init-param>
<param-name>operation</param-name>
<param-value>HelloWorld</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>helloUniverseJsp</servlet-name>
<jsp-file>/helloUniverse.jsp</jsp-file>
<init-param>
<param-name>operation</param-name>
<param-value>helloUniverse</param-value>
</init-param>
</servlet>

您实际上可以将jsp映射为servlet(最后它们是servlet,对吗?)在那里分配init参数,然后在引导程序中读取它们,我不知道这是否足够,但这可能就是您所需要的。 不利的一面是,您必须在web.xml中重新声明所有jsp,但是嘿,它比静态方法要好。

如果您不喜欢静态变量,那么您还可以拥有一个资源文件,并在引导程序中读取它,并与可能还会起作用的jsp文件一起维护该文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM