0

我想将另一个 JSP 页面(示例:标题页)添加到主 JSP 页面。我想避免写真正的jsp页面名称。所以我写了一些别的名字,比如说“topbanner”。这是代码

<%@include file="topbanner"%>

真正的页面是 topheader.jsp,它位于 project
->web->header->topheader.jsp

在我的部署描述符 (web.xml) 中,我在 web.xml 中映射了 topheader.jsp

    <servlet>
        <servlet-name>pagetop</servlet-name>
        <jsp-file>/header/topheader.jsp</jsp-file>
    </servlet>
<servlet-mapping>
        <servlet-name>pagetop</servlet-name>
        <url-pattern>/topbanner</url-pattern>
    </servlet-mapping>

但这不起作用。它抛出异常

org.apache.jasper.JasperException: /index.jsp (line: 11, column: 1) File "/topbanner" not found  

任何人都让我知道问题出在哪里以及如何使用示例代码解决它。

编辑
我不能<%@include file=" ..."%>用于映射的 jsp 吗?

4

2 回答 2

1

静态<%@ ...> JSP 包含给定路径内的文本。如果您希望在顶部或底部包含另一个 JSP,您应该使用prelude and code.

这是示例:

<jsp-config>
  <jsp-property-group>
     <url-pattern>*.jsp</url-pattern>
     <include-prelude>/header.jsp</include-prelude>
     <include-coda>/footer.jsp</include-coda>
  </jsp-property-group>
</jsp-config>
  • Prelude是在开头添加的。
  • Coda最后添加。

这里有一些教程:

于 2012-06-08T08:02:14.190 回答
0

尝试类似:

  1. 在 web.xml 中创建一个带有“tapbanner”映射的 servlet
  2. 覆盖servlet中的doGet()方法Topbanner
  3. ForwardInclude在使用topbanner.jspdoGet()RequestDispatcher
于 2012-06-08T07:07:42.253 回答