Java Sitemesh 3中的多个主体标记
我一直在为我的项目使用Sitemesh 3,到目前为止,它工作得很好。最近我遇到了一种情况,我被卡住了 我的最终视图必须由2个html文件组成,它们都有自己的和标记。 文件1:Java Sitemesh 3中的多个主体标记,java,freemarker,sitemesh,Java,Freemarker,Sitemesh,我一直在为我的项目使用Sitemesh 3,到目前为止,它工作得很好。最近我遇到了一种情况,我被卡住了 我的最终视图必须由2个html文件组成,它们都有自己的和标记。 文件1: 标题1 车身1 文件2: <html> <head>Head2</head> <body>body2</body> </html> 标题2 车身2 我正在使用freemarker include标记构建视图。因此,合成的HT
标题1
车身1
文件2:
<html>
<head>Head2</head>
<body>body2</body>
</html>
标题2
车身2
我正在使用freemarker include标记构建视图。因此,合成的HTML如下所示:
<html>
<head>Head1</head>
<body>body1</body>
</html>
<html>
<head>Head2</head>
<body>body2</body>
</html>
标题1
车身1
标题2
车身2
以下是我的装饰师:
<html>
<head>
<sitemesh:write property='head'/>
</head>
<body>
<div class="container">
<sitemesh:write property='body'/>
</div>
</body>
</html>
但一旦装饰完成,我得到的最终结果是:
<html>
<head>
<head>Head1</head>
</head>
<body>
<div class="container">
<body>body1</body>
</div>
</body>
</html>
标题1
车身1
但预期的产出是有限的
<html>
<head>
<head>
Head1
Head2
</head>
</head>
<body>
<div class="container">
body1
body2
</div>
</body>
</html>
标题1
标题2
车身1
车身2
我遇到了一个解决方案,但该解决方案对我不起作用,因为我不想创建多个装饰器
我只是想知道它在Sitemesh 3中是否可行。如果是的话,那怎么办
谢谢。如果您不介意扩展Sitemesh 3,那么通过在装饰器模板中添加对服务器端包含的支持,这是相当容易做到的。我在另一个库()中正是这样做的 我使用StringTemplate作为我的装饰语言,但这应该可以在Freemarker或任何其他模板工具中使用。我添加了一个,然后在我的decorator模板调用中添加
$include("someUrl").body$
这将执行include操作,然后使用Sitemesh 3引擎解析输出。这允许您拥有任意数量的include
希望这是有意义的尽管这不是确切的答案,但它是一个替代方案。因此,接受它作为答案。:)谢谢
$include("someUrl").body$