2012-10-19 2 views
1

Теперь я пытаюсь создать небольшой сайт с jsp, как и на большинстве индексных страниц, страница индекса моего сайта будет включать в себя часть: верхняя часть (содержит логотип и меню), основную часть, нижнюю часть , Чтобы избежать слишком большого количества ярлыков html, заполните страницы индекса, возможно, страницы будут хорошей идеей.Как правильно включить другие страницы jsp в jsp-страницу?

После поиска я знаю, что есть два метода для включения страниц jsp: используйте <%@ include file=""%> или <jsp:include page="">, и я знаю, что между ними существуют некоторые различия, но я все еще встречаю некоторые проблемы с включенными страницами.

если у меня есть index.jsp и top.jsp Я хочу включить top.jsp в index.jsp.

index.jsp так:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
<title>title</title> 
<style type="text/css"> 
    body {background-color:black;margin:0px;padding:0px;} 
    #left,#right {width:10%;margin:0px;padding:0px;} 
    #left,#center,#right {float:left;} 
    #center {width:80%;} 
    #top {height:150px;} 
    #main {height:600px;background-color:white;} 
</style> 
</head> 

<body> 
<div id="left">&nbsp;</div> 
<div id="center"> 
    <div id="top"><jsp:include page="top.jsp"/></div> 
    <div id="main"></div> 
    <div id="bottom"></div> 
</div> 
<div id="right">&nbsp;</div> 
</body> 
</html> 

top.jsp так:

<html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
</head> 
<body> 
<div id="logo"><img width="80px" height="65px" src="images/logo.jpg"></div> 
<div id="menu"> 
<p> 
    <a href="">hello</a> 
    <a href="">work</a> 
    <a href="">contact me</a> 
</p> 
</div> 
</body> 
</html> 

Мои вопросы заключаются в следующем:

1.No материи, метод двух я использую, где Я нажимаю «смотреть исходный код» в браузере, я получаю это:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

<html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
<title>title</title> 
<style type="text/css"> 
    body {background-color:black;margin:0px;padding:0px;} 
    #left,#right {width:10%;margin:0px;padding:0px;} 
    #left,#center,#right {float:left;} 
    #center {width:80%;} 
    #top {height:150px;} 
    #main {height:600px;background-color:white;} 
</style> 
</head> 

<body> 
<div id="left">&nbsp;</div> 
<div id="center"> 
    <div id="top"><html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
</head> 
<body> 
<div id="logo"><img width="80px" height="65px" src="images/logo.jpg"></div> 
<div id="menu"> 
<p> 
    <a href="">hello</a> 
    <a href="">work</a> 
    <a href="">contact me</a> 
</p> 
</div> 
</body> 
</html> 
</div> 
    <div id="main"></div> 
    <div id="bottom"></div> 
</div> 
<div id="right">&nbsp;</div> 
</body> 
</html> 

код в top.jsp включает содержание в голове в index.jsp, я думаю, может быть, я ошибаюсь, и ему это должно понравиться.

2.Если я пишу только некоторые lebels как это:

<div id="logo"><img width="80px" height="65px" src="images/logo.jpg"></div> 
<div id="menu"> 
<p> 
    <a href="">hello</a> 
    <a href="">work</a> 
    <a href="">contact me</a> 
</p> 
</div> 

Тогда, если код содержит некоторые символы, которые не поддерживаются «ISO-8859-1», MyEclipse будет сообщать неверную диалог информации. Итак, как правильно включить страницу jsp? Спасибо!

Лю Пэн

+0

см. Также [Включая страницу JSP на другую страницу JSP, как избежать нескольких разделов HEAD/BODY?] (Http://stackoverflow.com/questions/1841274/including-jsp-page-into-another-jsp-page -how-to-avoid-multiple-head-body-sect? rq = 1) – dawez

ответ

2

JSP не удалит <html><head><body> для вас во время <jsp:include>. Он просто включает в себя все его выходные данные без изменений. Если вам необходимо автоматическое удаление ненужных элементов HTML, вы должны использовать технологию просмотра с поддержкой шаблонов, такую ​​как преемники JSP, или некоторые сторонние библиотеки, такие как Velocity, Freemarker и т. Д.

Ваш top.jsp действительно должен содержать только содержание, которое вам действительно нужно, чтобы в конечном итоге в конечном HTML продукта точно в месте, где <jsp:include> объявлена ​​в родительской странице. Просто держите <html><head><body> от top.jsp.

Что касается проблем с кодировкой символов, то это совсем другое дело, не связано с включенным JSP или нет. Вам просто нужно добавить <%@page pageEncoding="UTF-8" %> в начало каждого JSP, чтобы сообщить контейнеру, что он должен обрабатывать JSP с использованием заданной кодировки символов. UTF-8 является стандартом де-факто, который охватывает каждый персонаж, о котором знает человечество.Для того, чтобы не допустить повторения той же самой линии над каждой JSP, добавьте в web.xml вместо:

<jsp-config> 
    <jsp-property-group> 
     <url-pattern>*.jsp</url-pattern> 
     <page-encoding>UTF-8</page-encoding> 
    </jsp-property-group> 
</jsp-config> 
+0

Спасибо за ваш ответ. Когда я добавляю <% @ page страницуEncoding = "UTF-8"%> в top.jsp, проблема , но когда я удаляю строку '<% @ page pageEncoding = "UTF-8"%>' из top.jsp и , я по-прежнему получаю неверный информационный диалог и не могу сохранить top.jsp, так что если У меня есть еще одна ошибка? –

+0

Возможно, ваша IDE должна быть настроена на сохранение JSP-файлов с использованием правильной кодировки. См. Также http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html – BalusC

+0

спасибо angain.Я установил кодировку jsp по умолчанию для «UFT-8», теперь я могу успешно сохранить страницу jsp. Спасибо! –

0

Попробуйте это: это действует такой же, как копировать и вставлять.

на всех страницах добавить:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 

и в верхней и нижней части, которая является верхний и нижний колонтитулы страницы этого нужно просто содержание тела достаточно. Dont type html tag достаточно, достаточно.

Чтобы импортировать верхний и нижние колонтитулы в главной странице сделать этот код:

<html> 
<head> 
</head> 
<body> 
<jsp:include page="/head.jsp" /> 
my body content 
<jsp:include page="/foot.jsp" /> 
</body> 
</html> 

вы можете также импортировать в голове для CSS и JS.

Смежные вопросы