我用<%@ include file="top.htm" %>包含页面报org.apache.jasper.JasperException: /top.htm(0,0) Page directive: can't have multiple occurrences of language错误
而用<jsp:include flush="true" page="top.htm"></jsp:include>不报错
为什么?

解决方案 »

  1.   

    [include指令]一、表示
            <%@ include file=““ %>
    二、服务器对此的处理
            该指令只是静态包含文件,服务器将对包含进来的文件进行编译。
     
    注:所谓静态是指文件不能为一个变量URL,而且也不带任何参数。[include Action]
    一、表示
            <JSP:include page=““ flush=“true/false“ />
            or
            <jsp:include page=““ flush=“true/false“ >
            <jsp:param name=““ value=““/>
              :
             </jsp:include>
    二、服务器对此的处理
            该Action可以包含静态文件或动态文件。包含静态文件时,服务器不对包含的文件编译。而在包含动态文件时,服务器会编译包含的动态文件。注:<jsp:include>会自行判断包含的文件是动态的还是静态的,可以同时处理这两种文件。读者可以自己包含HTML文件或JSP文件试试看。
      

  2.   

    还有一点
    我把程序放到两台机子上,一台正常,一台报错
    tomcat均为4.1
      

  3.   

    或许不是 include 的问题,错误信息很明白,可能是 Page directive 的问题,看看你的当前文件和 top.htm 是不是有重复的 Page directive。
      

  4.   

    你的页面编码不一致吧?===============
    代码完全一致
    或许不是 include 的问题,错误信息很明白,可能是 Page directive 的问题,看看你的当前文件和 top.htm 是不是有重复的 Page directive。================================
    但是我把<%@ include file="top.htm" %>去掉后就可以显示
      

  5.   

    ================================
    但是我把<%@ include file="top.htm" %>去掉后就可以显示
    ================================当然了,它没有 include top.htm,当然就不存在两个文件的冲突问题了。
      

  6.   

    我新建了一个jsp页面
    只写一句<%@ include file="top.htm" %>还是报错
    但单独访问top.htm正常
      

  7.   

    能不能看看你的 top.htm 文件的 head 部分
      

  8.   

    把你的top.htm改名成top.jsp
    在top.jsp文件的第一行加上
    <%@ page contentType="text/html;charset=GBK" language="java" %>