通过Struts或CSS将图像或文本添加到所有JSP页面上

时间:2011-02-10 18:33:02

标签: css jsp struts

我有大量的JSP页面,需要在固定位置显示一小部分静态内容。内容可以显示在当前页面内容上。我的问题是,如果不对所有300个页面进行修改,是否有办法通过Struts或CSS以某种方式插入内容?

例如,我想在我目前拥有的所有网站上显示徽标,并将其悬停在底部。

注意,我想这样做而不修改所有300页,不,不幸的是页面不包括菜单页眉/页脚文件。我有一个使用的CSS页面。

2 个答案:

答案 0 :(得分:1)

如果不对所有300页进行修改,您唯一的选择就是改变现有的CSS样式表。

要添加图片,请使用background-image属性。

#someId {
    background-image: url('images/foo.png');
}

要添加一些内容,请将:before:after伪选择器与content属性结合使用。

#someId:after {
    content: 'some content';
}

注意:在IE6 / 7中不起作用,不确定您是否仍然支持该浏览器。

作为最后的手段,您可以使用JavaScript / jQuery来操作HTML DOM树(插入新元素)。但是,这仍然需要在所有页面上加载的现有<script>文件。

答案 1 :(得分:1)

您可能想查看sitemesh。阅读完整安装和配置详细信息的文档,但基本上,例如,您可以创建一个“主”装饰器(想象装饰器,如皮肤或模板),如下所示:

<div id="header">Whatever you want here</div>
<div class="docBody"><decorator:body /></div>

接下来将此代码段添加到您的web.xml

<filter>
    <filter-name>sitemesh</filter-name>
    <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>sitemesh</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

然后sitmesh将拦截请求,并在每个jsp的结果周围包装“master”装饰器。换句话说,每个jsp的内容将呈现为<decorator:body>