2011-03-01 132 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