Java 弹簧和布局视图
我对Spring(而不是Java)是新手,我就是不能对所有的tiles东西都抱着浓厚的兴趣。我想做的是为JavaScript包含创建一个带有占位符的布局。 在.Net中,我可以定义包含一些内容占位符的母版页 布局。大师Java 弹簧和布局视图,java,spring,velocity,tiles,Java,Spring,Velocity,Tiles,我对Spring(而不是Java)是新手,我就是不能对所有的tiles东西都抱着浓厚的兴趣。我想做的是为JavaScript包含创建一个带有占位符的布局。 在.Net中,我可以定义包含一些内容占位符的母版页 布局。大师 <%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
<!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>
<asp:ContentPlaceHolder ID="javascripts" runat="server" />
</head>
<body>
<asp:ContentPlaceHolder ID="content" runat="server" />
</body>
</html>
在动作视图中,我可以定义如何替换占位符
index.aspx
<asp:Content ID="Content" ContentPlaceHolderID="content" runat="server">
This is the body content
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="javascripts" runat="server">
<script src="foo.js" type="text/javascript" charset="utf-8"></script>
</asp:Content>
这是正文内容
春天我该怎么做?我已经看到VelocityLayoutView具有类似的功能,但我不知道如何从互动程序中定义占位符的内容。您需要的是一个支持模板继承和定义任意占位符的模板引擎 我不知道有多少是这样的(在java世界中,有一种偏向于模板组合,而这正是普通jsp:include、tiles等所做的) 支持继承,并且有一个for-spring添加了对ST的支持,但是我不知道插件是否支持模板继承,并且ST-heritation-AFAIK不允许您定义占位符 另一个选择是 看起来它符合你的要求。 例如(取自其网站): 基础模板
<html>
<head>
<title>{% block title %}Jangod ????{% endblock %}</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div id="content">
{% block content %}{% endblock %}
</div>
<div id="footer">
{% block footer %}
© Copyright 2010
{% endblock %}
</div>
</body>
</html>
{%block title%}jangodh???{%endblock%}
{%block content%}{%endblock%}
{%block footer%}
©版权所有2010
{%endblock%}
模板,它扩展了基础模板:
{% extends "base.html" %}
{% block title %}Hello {{user.name}}{% endblock %}
{% block content %}
<h1>Recencies</h1>
<ul>
{% for post in posts %}
<li>{{post.title}}</li>
{% endfor %}
</ul>
{% endblock %}
{%extends“base.html”%}
{%block title%}你好{{user.name}{%endblock%}
{%block content%}
距离
{posts%%中的post为%s}
- {{post.title}
{%endfor%}
{%endblock%}
它有。我正在使用Apache Tiles解决同样的问题,而且使用起来非常简单。。。 只需谷歌ApacheTiles+Spring就可以看到如何将它们连接在一起(一个简单的xml配置) 之后 只需使用主布局创建一个Layout.jsp,其中包含您提到的内容
<html>
<head><title>Tiles Quickstart</title><head>
<body>
<div id="header">
Welcome to Tiles 101
</div>
<div id="body">
Tiles 101 body content.
</div>
<div id=footer">
© 2007, Apache Software Foundation
</div>
</body>
</html>
瓷砖快速入门
欢迎来到Tiles 101
瓷砖101主体内容。
试试看,这几乎就是我要找的。但是,是否可以从另一个互动程序中定义title属性的内容,而不必在互动程序定义中配置任何内容?是的,您可以,很抱歉,您必须查找它,我不记得了:-(@Mato给出一个你想要的例子do@soulcheck我想要的是,每个磁贴都可以将Java脚本插入到页面标题中。
<tiles-definitions>
<definition name="header" template="/fragments/header.jsp">
</definition>
</tiles-definitions>