spring-mvc 有没有这样一个轮子。

2016-02-02 16:08:05 +08:00
 vikeria

类似 node 的 express-partials 模块一样,能够使某一个页面作为整体的 layout 。
需求是不同的链接打开的页面都存在一个相同的导航。
实际感觉的话,似乎要从模板解析或者是拦截起处入手。

4548 次点击
所在节点    Java
17 条回复
cnhongwei
2016-02-02 16:11:27 +08:00
sitemesh tiles 之类的。和 spring mvc 没有太多的关系。
landykingdom
2016-02-02 16:15:42 +08:00
sitemesh
vikeria
2016-02-02 16:29:24 +08:00
@cnhongwei
@landykingdom
thanks 一会去看下
crazyxin1988
2016-02-02 16:33:58 +08:00
没用过 express 你的意思是 模板框架吗?
apache tiles 看看是否满足你的要求
liuxey
2016-02-02 16:40:13 +08:00
只要是模板都有类似的功能, jsp 都行,这和 Spring-mvc 没有多大关系, Servlet 配合 JSP 也能把 layout 做的很好
v2orz
2016-02-02 16:40:35 +08:00
velocity 或者 freemarker ,其实你这需求 jsp 都可以。。
跟 springmvc 没啥关系
vikeria
2016-02-02 16:45:23 +08:00
@liuxey
@v2orz
实际上的话是可以直接每个模板页面都引入同一个页面,只是觉得那样比较麻烦。希望省略掉这些,让每个页面代码对应功能看起来很纯粹。
Sharuru
2016-02-02 16:49:36 +08:00
= = 这不就是 iFrame 么
caliven
2016-02-02 16:51:34 +08:00
sitemesh
vikeria
2016-02-02 16:51:39 +08:00
@Sharuru 不希望用 iframe. iframe 会带来一些蛋疼问题。现有实现就是用 iframe 实现的。
caliven
2016-02-02 16:52:07 +08:00
sitemesh 修饰框架
zluyuer
2016-02-02 18:03:49 +08:00
用 Freemarker 的 macro 可以实现,写一个大概的例子:

主框架 base_layout.ftl :
<#import 'nav.ftl' as nav>

<html>
<#macro doLayout>
<@nav.doLayout />
<#nested />
</#macro>
</html>


导航页 nav.ftl (填充到 <@nav.doLayout />):
<#macro doLayout>
<nav>
Navbar here
</nav>
</#macro>


任意内容页(填充到 <#nested /> 部分):
<#import 'base_layout.ftl' as layout>

<div>
<@layout.doLayout>
Content here
</@layout.doLayout>
</div>
zluyuer
2016-02-02 18:06:07 +08:00
不好意思最后一页写错了,应该是:

任意内容页(填充到 <#nested /> 部分):
<#import 'base_layout.ftl' as layout>

<@layout.doLayout>
<div>
Content here
</div>
</@layout.doLayout>;
iEverX
2016-02-02 20:31:55 +08:00
jade4j , java 实现的 jade ,应该比较符合写 express 的习惯
ddou
2016-02-02 20:44:02 +08:00
再补充一个: handlebar
hzwlf2002
2016-02-02 22:25:26 +08:00
用过 apache tiles ,后来干脆转 angularjs + restful 写 single page application 了。
ppwangs
2016-02-04 16:36:44 +08:00
这功能我一般都自己实现的。
现在主要使用 ajax/pjax 实现,体验更好一些。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/255026

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX