0

关于包含 jsp 头文件的正确方法(使用 appengine)有一个简短的问题。我有一个只包含头部的 htmlinclude.jsp

这是头文件

<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文件包括这个头文件如下

<% 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 吗?

4

1 回答 1

1

我从来没有这样做过,但理论上你需要将它声明为全局变量而不是局部变量。你可以通过<%! %>表达来做到这一点。

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

然而,我猜你依赖于 JSP 编译器/解析器,不管它是否吃掉它。


无论如何,这不是“正确的方式”。使用标记库和 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>
于 2011-03-01T18:22:00.330 回答