включите ошибку компиляции jsps - PullRequest
0 голосов
/ 01 марта 2011

У меня был быстрый вопрос о том, как правильно включить заголовочные файлы 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 не компилировался?

1 Ответ

1 голос
/ 01 марта 2011

Я никогда так не делал, но в теории вам нужно объявить это как глобальную переменную, а не как локальную переменную. Вы можете сделать это с <%! %> выражением.

<%! 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>
...