Jsp页面层次结构

我有一个复杂的网站设计(从网络上下载了一个设计+ CSS),并且我想巧妙地使用includes,以便可以将设计与内容分开。

但是,这样做有些复杂。内容位于,等<div>内部<div>。我如何使用包括在内,以便基本上可以将站点的每个可重复方面(标题,导航)保存在其自己的文件中,而对于每个实际页面,都没有在jsp中设计?

也就是说,在某个页面中,我只想拥有

//possible includes

<h1>Hello World!</h1>

//possible includes

回答:

您可能应该看看Apache Tiles,因为它可以为您完成大部分工作。

如果要自己滚动,可以创建两个文件,分别在页面的开头和结尾处分别标头header.jsp和footer.jsp:

header.jsp

 <html>

<head>

</head>

<body>

<div>

//header content

</div>

<div>

//main content

还有footer.jsp

      </div>

</body>

</html>

并在您的内容页面中都包括在内。

另外,您可以创建一个layout.jsp页面:

  <html>

<head>

</head>

<body>

<div>

//header content

</div>

<div>

<c:out value="${content}"/>

</div>

</body>

</html>

然后所有请求将填充内容变量,然后加载布局页面。这样,您不必在整个地方重复包含。

示例:在您的servlet中,您可以为变量赋一个类似这样的值:

        String content = "<h1>Hello World!</h1>";

request.setAttribute("content", content);

//forward to layout.jsp

这样,将在layout.jsp页面上显示内容。您当然可以创建多个这样的变量占位符。

第三种选择:使用jsp:include标记包含动态内容。例如,layout.jsp页面将如下所示:

    <html>

<head>

</head>

<body>

<div>

//header content

</div>

<div>

<jsp:include page="${page}"/>

</div>

</body>

</html>

include标签将在给定的URL处获取页面。使用此建议的原因是,当您拥有更复杂的显示时,最好使用JSP页面来构造显示。然后,该servlet将仅与业务逻辑有关。您可以为每个显示创建一个单独的jsp页面。该servlet如下所示:

    //business logic

//save the data to be displayed in the request

String page = "nextpagetodisplay.jsp";

request.setAttribute("page", page);

//forward to layout.jsp

以上是 Jsp页面层次结构 的全部内容, 来源链接: utcz.com/qa/416357.html

回到顶部