私は自分のプロジェクトをspring-mvcとspring-webflowを使って開発しています。春のWebflowやAjaxに関する記事を読んだ後、私はApache Tilesを使ってビューをレンダリングする方が良いということを理解しました。SitemeshからApache Tilesへの移行
Sitemeshでは、私はtag call head()を使用しました。テンプレート内で使用されているタグは、結果として得られるHTML上でレンダリングされたページのhead属性全体をレンダリングすることを可能にします。
Apache Tilesでこれを実現する方法はありますか?
二JPS、ページの本体と1と頭の定義を持つ別:私の測定値から、私は次のことをしなければならないと推定します。ここでは、テンプレート、ページ、タイルの定義を理解しやすくするための例を示します。
タイル定義
<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はOKです。しかし、私は単純なもののために2つのJPSを定義するのは好きではありません。
私は何か間違っていますか?
これを行うより良い方法はありますか?
ありがとう非常にありがとうございます。有用な情報。 –