在用 include 包含JSP 檔案時發現最終產生的頁面上會有多餘的空白行,原始碼中有個不能顯示的字元,在查了一些文章後發現問題出在編輯器上。之前我用 Editplus 2.11 儲存 JSP 檔案為 UTF-8 編碼,會在檔案開始的地方插入三個不可見的字元(0xEF 0xBB 0xBF,即BOM),它的表示的是 Unicode 標記(BOM)。因此解決辦法就是將代碼儲存的時候將 BOM 前面的勾去掉。可以用 EmEditor , Editplus 2.21 來儲存。
 表示 "ZERO WIDTH NO-BREAK SPACE",更詳細的請見
http://www.fileformat.info/info/unicode/char/feff/index.htm
發現問題的測試代碼:
test.jsp
---------------------
<%@ page pageEncoding="UTF-8" %>
<%@ page contentType="text/html; charset=utf-8" %>
<%@ include file="1.jsp" %>
<table>
<tr><td>testing</td></tr>
</table>
<%@ include file="2.jsp" %>
1.jsp
---------------------
<%@ page pageEncoding="UTF-8" %>
<%@ page contentType="text/html; charset=utf-8" %>
<div>hehe</div>
2.jsp
---------------------
<%@ page pageEncoding="UTF-8" %>
<%@ page contentType="text/html; charset=utf-8" %>
<div>haha</div>
最終產生的頁面代碼如下:
---------------------

<div>hehe</div>
<table>
<tr><td>testing</td></tr>
</table>

<div>haha</div>
---------------------