日期:2014-05-18  浏览次数:20728 次

关于jsp中包含页面问题
我用 <%@   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> 不报错
为什么?


------解决方案--------------------
[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文件试试看。

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

当然了,它没有 include top.htm,当然就不存在两个文件的冲突问题了。
------解决方案--------------------
把你的top.htm改名成top.jsp
在top.jsp文件的第一行加上
<%@ page contentType= "text/html;charset=GBK " language= "java " %>