2010-03-22 128 views
0

我已經添加了一個代碼,其中將包括使用jsp:include的子jsp。我面臨的問題是代碼中存在的代碼未執行。下面是使用它的代碼IAM現在疑問在JSP中:包括

JSPF文件:

 <jsp:include page="X.jsp" flush="true"> 
    </jsp:include> 

上面的代碼中存在一個名爲「A.jspf」文件,該文件包含在名爲「Parent.jsp」另一個JSP文件。

X.jsp:

 <%@ page import="java.util.*" %> 
     <% 
     System.out.println("********Child JSP"); 
     %> 

每當我執行父文件「Parent.jsp」時,所有在Parent.jsp和A.jspf給出的其他內容,不同之處存在於X上的內容顯示JSP。沒有錯誤顯示。 X.jsp和A.jspf都只存在於同一個文件夾中。請幫我解決這個問題。提前致謝。

+0

Scriptlets是一個很大的禁忌。 – BalusC 2010-03-22 20:18:22

回答

1

如果你想顯示在客戶端瀏覽器的字符串,你應該使用這樣的:

<%@ page import="java.util.*" %> 
<% 
    out.println("********Child JSP"); 
%> 

的System.out.println()將輸出你的網站服務器控制檯的字符串,而通過out.println ()將使用JSP的隱式「out」對象來表示http響應的輸出流 - 因此可以在網頁中正確輸出給定的String。

+0

我試過用「out.println(」******** Child JSP「);」也仍然不能;在該頁面中顯示任何內容.. – raja 2010-03-22 16:03:23

+0

靜態包含任何成功? <%@ include file =「X.jsp」%> – 2010-03-22 16:29:17

0

在你的孩子的jsp試試這個:

<%="********Child JSP"%> 

使用<%= ..%>那麼詳細的標籤上打印你的jsp。

檢查this卡以供快速參考。

+0

我已經嘗試過,但不起作用.... – raja 2010-03-22 16:06:44

+0

很長一段時間我不使用jsp,但我很確定這是正確的語法。 嘗試重新啓動應用程序服務器或觸摸父級jsp。 – systempuntoout 2010-03-22 16:09:50

0

如果您要修改子JSP,請修改父JSP一次並保存。這可能與添加/刪除空間一樣微不足道。這導致servlet重新構建。

當您在靜態包含中進行更改時,直到再次編譯父級jsp時纔會反映出來。

0

<%@ page import="java.util.*" %> <% System.out.println("Child JSP"); %>

如果你運行上面的例子中,你會發現從「System.out.prinltn」服務器上的輸出log.By本身scriplet不會產生HTML.Using一個scriplet如果我們想要生成HTML,那麼我們可以使用一個名爲「out」的變量.NO不需要聲明變量,因爲它已經聲明已經存在。意味着它已經爲腳本和其他一些變量預定義了。

以下示例顯示如何使用scriplet生成HTML輸出。

<%@ page import="java.util.*" %> <% out.println("Child JSP"); %>

是一個參考指向稱爲javax.servlet.jsp.JSPWriter一個類對象;