【发布时间】:2012-08-01 06:55:50
【问题描述】:
我想做的是将项目中的每个 JSP 页面与一个属性相关联。可以说,我有三页:
helloWorld.jsp
helloUniverse.jsp
这里的属性是'Operation'。有没有办法可以将它应用于他们:
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"));
}
}
我知道这看起来非常牵强..但是这样的事情可能吗?
【问题讨论】:
-
您可以在每个页面上添加一个隐藏参数,该参数的值可以填写此问题的答案:How to get page name in JSP or JSTL?
-
问题是当JSP被加载时它仍然会被执行。我不想要那个。当 Web 应用程序启动时,我需要它存在。
-
为什么要构建这样的地图?我认为无论你试图实现什么,你都在朝着错误的方向前进。