1

私は今、ほとんどのインデックスページと同じように、jspを使用して小さなWebサイトを作成しようとしています。私のWebサイトのインデックスページには、上部(ロゴとメニューを含む)、主要部分、下部の一部が含まれます。インデックスページに入力されるHTMLラベルが多すぎるのを避けるために、ページを含めることをお勧めします。

検索した後、jspページを含めるには2つの方法があることがわかりました。use<%@ include file=""%>または<jsp:include page="">と私はそれらの間にいくつかの違いがあることを知っていますが、それでもインクルードページでいくつかの問題が発生します。

を持っていて、index.jspに含めtop.jspたい場合。top.jspindex.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.どちらの方法を使用しても、ブラウザで[ソースコードを探す]をクリックすると、次のようになります。

<!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.私がこのようないくつかのレベルを書くだけの場合:

<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ページを正しく含めるにはどうすればよいですか?ありがとうございました!

劉鵬

4

2 に答える 2

2

JSPはの<html><head><body>間にあなたのためにを削除しません<jsp:include>。変更されていないすべての出力が含まれているだけです。無関係なHTML要素の自動削除が必要な場合は、JSPの後継のFaceletsなどのテンプレート対応のビューテクノロジ、またはVelocity、Freemarkerなどのサードパーティライブラリを使用する必要があります。

親ページで宣言されている場所に正確に最終的なHTML製品を作成するために必要なコンテンツのみtop.jspを含める必要があります。から遠ざけるだけです。<jsp:include><html><head><body>top.jsp

文字エンコードの問題に関しては、これは別の問題であり、JSPが含まれているかどうかには関係ありません。すべてのJSPの先頭にを追加し<%@page pageEncoding="UTF-8" %>て、指定された文字エンコードを使用して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>
于 2012-10-19T13:42:33.030 に答える
0

これを試してください:これはコピーアンドペーストと同じように機能します。

すべてのページに追加:

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

ヘッダーとフッターのページである上下には、本文のコンテンツで十分です。htmlタグを入力しないでください。問題だけで十分です。

メインページにヘッダーとフッターをインポートするには、次のコードを実行します。

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

cssとjsのヘッドにインポートすることもできます。

于 2013-01-09T17:59:10.793 に答える