使用<%@ include file =“...”%>的网址格式

时间:2012-06-08 07:05:59

标签: jsp servlets

我想将另一个JSP页面(例如:标题页面)添加到主JSP页面。我想避免编写真正的jsp页面名称。因此,我写了另一个名字,让我们说“topbanner”。 这是代码

<%@include file="topbanner"%>

真实页面是topheader.jsp,它位于项目
中 - &GT;基于web&GT;报头 - &GT; 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 s吗?

2 个答案:

答案 0 :(得分:1)

静态&lt;%@ ...&gt; 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

以下是一些教程:

答案 1 :(得分:0)

尝试类似:

  1. 在web.xml
  2. 中创建一个带有“tapbanner”映射的servlet
  3. 覆盖doGet() servlet
  4. 中的Topbanner方法
  5. ForwardInclude使用topbanner.jsp
  6. doGet()中的RequestDispatcher