1

我现在正在尝试用jsp做一个小网站,就像大多数索引页面一样,我网站的索引页面将包括一些部分:顶部(包含徽标和菜单),主要部分,底部部分。为了避免在索引页面中填充过多的 html 标签,也许包含页面会是一个好主意。

经过搜索,我知道包含jsp页面有两种方法:use <%@ include file=""%>or<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 等一些 3rd 方库。

您确实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>
于 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>

您也可以在 head 中导入 css 和 js。

于 2013-01-09T17:59:10.793 回答