2011-03-01 148 views
0

有一個正確的方式來包含jsp頭文件(使用appengine)的快速問題。我有一個 htmlinclude.jsp只包含頭部包括jsps編譯錯誤

這是頭文件

<html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
<link rel="stylesheet" type="text/css" href="/styles.css" />  
<title><%=title%></title> 
</head> 
<body>  

其他JSP文件包含此headerfile如下

<% String title="page title" ;%> 
<%@ include file="htmlinclude.jsp" %>' 

在試圖部署到AppEngine上我收到一個錯誤 -

SEVERE: Error compiling file: htmlinclude_jsp.java  
[javac] Compiling 1 source file 
[javac] C:\htmlinclude_jsp.java:46: cannot find symbol 
[javac] symbol : variable title 
[javac] location: class org.apache.jsp.htmlinclude_jsp 
[javac]  out.print(title); 
[javac]    ^
[javac] 1 error 

運行時關閉本地機器我沒有問題...是否有一個標誌,我應該設置這樣的htmlinclude.jsp不編譯?

回答

1

我從來沒有這樣做過,但理論上你需要將它聲明爲全局變量而不是局部變量。您可以用<%! %>表達式來做到這一點。

<%! String title = "page title"; %> 

但是,我猜你依賴於JSP編譯器/解析器是否吃掉或不吃。


無論如何,這是 「正道」。使用taglibs和EL。

<html> 
    <head> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
    <link rel="stylesheet" type="text/css" href="/styles.css" />  
    <title>${param.title}</title> 
    </head> 
    <body> 

<jsp:include page="htmlinclude.jsp"> 
    <jsp:param name="title" value="page title" /> 
</jsp:include> 
+0

謝謝...這工作 – user529265 2011-03-01 19:44:51

+0

不客氣。你用什麼解決方案? – BalusC 2011-03-01 19:46:16