2013-05-05 75 views
0

我有一个过滤器来处理给定的servlet映射,并且包含一个保存每个页面结构的JSP。编辑taglib中的jsp内容

servletContext.getRequestDispatcher("/index.jsp").include(request, response); 

jsp中我有根据一系列的规则(列入被“身体”标签内进行处理父内的另一个JSP部分纳入一个自定义JSTL标记内:

pageContext.include(ProcessURI.getJSPLocation(request.getRequestURI())); 

到里面包含的JSP我希望能够写一个样式表并追加到响应。我使用了一个标签库的最新产品。

<taglib:head> 
    <link rel="stylesheet" href="some.css" > 
</taglib:head> 

自从上次JSP的内容是包含在“body”标签中我需要访问“head”并在最后一项后面插入HTML(我不能在“body”标签中插入样式表)。

<head> 
    ... 
    <!-- I want to insert here --> 
    <link rel="stylesheet" href="some.css" > 
<head> 
<body> 
    ... 

我怎么会进入最后的taglib内已处理的应答(标签库:头),其中包含的JSP(/index.jsp)我可以编辑和插入其主体内容为第一?

我想可以访问已处理的响应,直到给定的taglib调用,我正确吗?

我接受使用上述其他技术获得相同结果的不同方式。

+0

也许这是可能的,但我宁愿不要考虑它......在您的标记可能已经流传输到客户端(响应缓冲区大小)之前生成的内容。 – home 2013-05-05 08:43:40

+0

如何避免将内容传输到客户端,直到对taglib正文进行评估?它应该是解决这个问题的一种方法,没有巨大的性能缺陷。 – 2013-05-05 13:50:51

+0

迟早会成为性能瓶颈(您的应用程序服务器必须缓存整个响应!)。我会考虑重新设计...... – home 2013-05-05 14:08:22

回答

0

我已经解决了创建一个taglib来加载文件page.jsp和另一个为page-head.jsp。通过这种方式,我可以按照正确的顺序处理数据,而无需进行一些疯狂的响应操作