我使用Java、Servlets和JSP来创建一个基本的应用程序。
我有这个基本的html文件,我称之为基本布局,它具有基本的页面结构,以及导航菜单、页眉和页脚。
我也有一个register.jsp页面,用户可以在其中注册。
当用户点击/register url时,如何将register.jsp包含到基本布局中?
目前,我使用PrintWriter对象从Servlet转储注册页面的html内容,并使用ajax在基本页面上动态呈现内容。但这真的是一种糟糕的做法。
发布于 2013-06-27 06:46:40
是的,这确实是一种糟糕的做法。
更简单的选择是将您的html文件转换为jsp。然后,您可以在jsp中包含您想要的任何其他资源。考虑这个例子:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<jsp:include flush="true" page="/templates/css.jsp"/>
<jsp:include flush="true" page="/templates/scripts.jsp"/>
</head>
<body>
<div id="container">
<div id="header">
<jsp:include flush="true" page="/templates/header.jsp"/>
<jsp:include flush="true" page="/templates/top_menu_visitor.jsp"/>
</div>
<div id="wrapper">
<jsp:include flush="true" page="/templates/top_content_visitors.jsp"/>
</div>
<div id="footer">
<jsp:include flush="true" page="/templates/footer_credits.jsp"/>
</div>
</div>
</body>
</html>在本例中,您有一个包含许多组件的模板页面,其中大多数组件在不同页面之间是通用的。这可以很好地作为您的index.jsp。对于注册jsp,您只需像这样创建一个新的jsp页面,并更改几个部分即可。
这是一种方法。在Java EE中,有许多框架可以自动执行此过程。
发布于 2013-06-27 06:43:57
您可以结合使用检查当前URL的<jsp:include>和<c:if>条件块。
当前请求URL可以使用${pageContext.request.requestURI}获取
还有一些Apache Tiles library可以帮助克服JSP缺乏可重用性的问题
查看有关<jsp:include> on Java EE5教程的更多信息:http://docs.oracle.com/javaee/5/tutorial/doc/bnajb.html
https://stackoverflow.com/questions/17331614
复制相似问题