JSP模板继承
来自Django的背景,我经常使用“模板继承”,其中多个模板从一个公共基础继承。 有没有简单的方法在JSP中做到这一点? 如果没有,是否有替代JSP这样做(除了Jython上的Django :)
基本模板
<html>
<body>
{% block content %}
{% endblock %}
</body>
<html>
基本内容
{% extends "base template" %}
{% block content %}
<h1>{{ content.title }} <-- Fills in a variable</h1>
{{ content.body }} <-- Fills in another variable
{% endblock %}
将呈现如下(假设conten.title是“在此插入标题”,并且content.body是“在此插入正文”)
<html>
<body>
<h1>Insert title Here <-- Fills in a variable</h1>
Insert Body Here <-- Fills in another variable
</body>
<html>
你可能会想看看瓷砖。
编辑:在相关的瓷砖说明,你可能想看看Struts。 这不是你正在寻找的东西(这是瓷砖),但它对来自Django的人有用。
您可以使用JSP标记文件做类似的事情。 创建包含页面结构的自己的page.tag
。 然后使用<jsp:body/>
标记插入内容。
您可以使用快速框架进行JSP模板继承
base.jsp
%@ taglib uri="http://www.rapid-framework.org.cn/rapid" prefix="rapid" %>
<html>
<head>
<rapid:block name="head">
base_head_content
</rapid:block>
</head>
<body>
<br />
<rapid:block name="content">
base_body_content
</rapid:block>
</body>
</html>
child.jsp
<%@ taglib uri="http://www.rapid-framework.org.cn/rapid" prefix="rapid" %>
<rapid:override name="content">
<div>
<h2>Entry one</h2>
<p>This is my first entry.</p>
</div>
</rapid:override>
<!-- extends from base.jsp or <jsp:include page="base.jsp"> -->
<%@ include file="base.jsp" %>
产量
<html>
<head>
base_head_content
</head>
<body>
<br />
<div>
<h2>Entry one</h2>
<p>This is my first entry.</p>
</div>
</body>
</html>
源代码
http://rapid-framework.googlecode.com/svn/trunk/rapid-framework/src/rapid_framework_common/cn/org/rapid_framework/web/tags/
链接地址: http://www.djcxy.com/p/90127.html下一篇: Why it isn't advised to call the release() method of a binary semaphore from inside a finally