Jsp页面层次结构
我有一个复杂的网站设计(从网络上下载了一个设计+ CSS),并且我想巧妙地使用include
s,以便可以将设计与内容分开。
但是,这样做有些复杂。内容位于,等<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