关于JSP的Include指令的用法,一般是以下两种情况举个例子:
第一种情况
<jsp:include page="scripts/login.jsp" />
第二种情况
<jsp:include page="scripts/login.jsp">
<jsp:param name="username" value="island" />
</jsp:include>
当然了,include指令可以包含动态文件也可以包含静态文件,我们这里不讨论这些.
我们会发现include的这些语法,在Eclipse里似乎格式需要变换一下.
我的运行环境是eclipse3.2_Callisto+jdk1.5.0_03+Tomcat v5.5,原本是测试以下的程序
includeEx.jsp与time.jsp这两个文件是不是共享一个request对象的.
--------------------------------------------------------------------------------------------------------
includeEx.jsp
<%@ page language="java" contentType="text/html;charset=GB2312" %>
<%@ page buffer="8kb" autoFlush="true"%>
<%@ page import="java.util.*"%>
<html>
<head>
<title>include的使用</title>
</head>
<body>
<jsp:include page="time.jsp" flush="true">
<jsp:param name="now" value="<%=new String((new java.util.Date()).toLocaleString())%>"/>
</jsp:include>
</body>
</html>
--------------------------------------------------------------------------------------------------------
time.jsp
<%@ page language="java" contentType="text/html;charset=GB2312" %>
<%String time=request.getParameter("now");%>
现在的时刻为:<%=time%>
-----------------------------------------------------------------------------------------------------
于是我们不准备使用<jsp:param>子句去参数的,而是选择将includeEx.jsp该为
<%@ page language="java" contentType="text/html;charset=GB2312" %>
<%@ page buffer="8kb" autoFlush="true"%>
<%@ page import="java.util.*"%>
<html>
<head>
<title>include的使用</title>
</head>
<body>
<%request.getParameter("now"); %>
<jsp:include page="time.jsp" ></jsp:include>
</body>
</html>
------------------------------------------------------------------------------------------------------------
当然了现在给的程序是可以运行的,可当时新的includeEx.jsp中<body>标签中的
<jsp:include page="time.jsp" ></jsp:include>这个程序片断的格式是有讲究的,
至少在我所运行的环境中是必须这样的.
我们在eclipse3.2_Callisto+jdk1.5.0_03+Tomcat v5.5
运行环境中反复试验得知这么一个结论:
如果不想在include指令中运用<jsp:param>子句传参,那么最好运用这种格式:
<jsp:include page="scripts/login.jsp" />
如果一定要用<jsp:include page="scripts/login.jsp">
<jsp:param name="username" value="island" />
</jsp:include>
这种格式的话,就请按照这种格式:
<jsp:include page="scripts/login.jsp"></jsp:include>标签中间不可以加空格.
同样我们把服务器该成JBOSS 3.2.3结论仍然成立.
试验证明运用include指令所涉及的两个文件公用一个request对象.
我们认为这可能与Eclipse的编译扫描的规则有关系.但在深层就不得而知了.希望大家可以一起讨论.