我正在使用 spring-mvc 和 spring-webflow 开发自己的项目。在阅读了一些关于 spring webflow 和 ajax 的文章后,我了解到更好的选择是使用 Apache Tiles 来呈现视图。
在 Sitemesh 中,我使用了一个标签调用 head ()。模板中使用的该标签允许在生成的 HTML 上呈现页面的整个 head 属性。
有没有办法在 Apache Tiles 中实现这一点?根据我的阅读,我认为我必须执行以下操作:
两个 jps,一个带有页面主体,另一个带有头部定义。这是一个包含模板、页面和图块定义的示例,以便更好地理解。
瓷砖定义
<tiles-definitions>
<definition name="base" template="/WEB-INF/view/templates/tileslayout.jsp">
<put-attribute name="title" value="Held - main page"/>
<put-attribute name="body" value=""/>
<put-attribute name="head" value=""/>
</definition>
<definition name="company.edit" extends="base">
<put-attribute name="head" value="/WEB-INF/view/company/editHeader.jsp"></put-attribute>
<put-attribute name="body" value="/WEB-INF/view/company/edit.jsp"></put-attribute>
</definition>
</tiles-definitions>
模板:
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<html>
<head>
-- css and scripts --
<tiles:insertAttribute name="head" ignore="true"/>
<!-- <decorator:head /> -->
</head>
<body>
--- menu definition ---
<div class="container-fluid">
<tiles:insertAttribute name="body"/>
<!-- <decorator:body/> -->
</div>
<hr/>
<footer>
-----
</footer>
</body>
</html>
公司页面
<div class="container">
-- the page html code
</div>
总公司页面
<meta name="menu" content="company" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style>
.error {
color: red;
}
</style>
<script type="text/javascript">
$(document).ready(function() {
$('#name').focus();
});
</script>
有时头部可能更复杂。
生成的 html 没问题。但我不喜欢为应该简单的东西定义两个 jps。
我做错了什么?
有一个更好的方法吗?