我有大量的JSP页面,需要在固定位置显示一小部分静态内容。内容可以显示在当前页面内容上。我的问题是,如果不对所有300个页面进行修改,是否有办法通过Struts或CSS以某种方式插入内容?
例如,我想在我目前拥有的所有网站上显示徽标,并将其悬停在底部。
注意,我想这样做而不修改所有300页,不,不幸的是页面不包括菜单页眉/页脚文件。我有一个使用的CSS页面。
答案 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>
。