首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将属性应用于JSP页

问将属性应用于JSP页
EN

Stack Overflow用户
提问于 2012-08-01 14:55:50
回答 2查看 138关注 0票数 0

我想要做的是将项目中的每个JSP页面与一个属性相关联。假设我有三页:

代码语言:javascript
复制
helloWorld.jsp
helloUniverse.jsp

这里的属性是'Operation‘。有没有一种方法可以把它应用到他们身上,比如:

代码语言:javascript
复制
helloWorld.jsp -> Operation: "HelloWorld"
helloUniverse.jsp -> Operation: "HelloUniverse"

这样它们就可以从ServletContextListener获得

代码语言:javascript
复制
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"));
    }
}

我知道这看起来非常牵强..但这样的事情有可能发生吗?

EN

回答 2

Stack Overflow用户

发布于 2012-08-01 15:19:52

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

代码语言:javascript
复制
  HelloWorld=helloWorld.jsp
  HelloUniverse=helloUniverse.jsp
票数 -1
EN

Stack Overflow用户

发布于 2012-08-02 03:41:30

这只是一个理论,但是:

代码语言:javascript
复制
<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,对吗?)在那里分配初始化参数,然后在bootstrap中读取它们,我不知道这是否足够,但它可能是您需要的。缺点是你必须在web.xml中重新声明所有的jsp,但是这比静态的东西要好。

如果你不喜欢静态变量,你也可以有一个资源文件,在bootstrap中读取它,并维护该文件以及可能也可以工作的jsp。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11754038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档