相关疑难解决方法(0)

我为什么要使用模板引擎?jsp include和jstl vs tiles,freemarker,velocity,sitemesh

我即将选择组织我的观点(使用spring-mvc,但这不应该太重要)

据我所知,有6个选项(尽管它们并不相互排斥):

  • 瓷砖
  • SiteMesh的
  • Freemarker的
  • 速度
  • <jsp:include>
  • <%@ include file="..">

TilesSitemesh可以分组; 所以可以的Freemarker速度.每个小组中使用哪一个不是这个讨论的问题,有足够的问题和讨论.

这是一个有趣的读物,但不能说服我使用瓷砖.

我的问题是 - 这些框架提供的内容 <@ include file="..">与JSTL 无法正常完成.要点(一些来自文章):

  1. 包括部分页面,如页眉和页脚 - 之间没有区别:

    <%@ include file="header.jsp" %>
    
    Run Code Online (Sandbox Code Playgroud)

    <tiles:insert page="header.jsp" />
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在标题中定义参数 - 如标题,元标记等.这非常重要,尤其是从SEO的角度来看.使用模板选项,您只需定义每个页面应定义的占位符.但是你可以在jsp中使用JSTL,使用<c:set>(在包含页面中)和<c:out>(在包含的页面中)

  3. 布局重组 - 如果要在菜单上方移动面包屑,或在另一个侧面板上方移动登录框.如果页面包含(使用jsp)组织不当,则可能需要在这种情况下更改每个页面.但是如果你的布局不是太复杂,并且你把常见的东西放在页眉/页脚中,就没有什么可担心的了.

  4. 公共组件和特定内容之间的耦合 - 我没有发现这个问题.如果要重用某些片段,请将其移动到不包含任何页眉/页脚的页面,并在需要的地方包含它.

  5. 效率 - <%@ include file="file.jsp" %>比其他任何东西都更有效,因为它被编译一次.所有其他选项都被解析/执行多次.

  6. 复杂性 - 所有非jsp解决方案都需要额外的xml文件,其他包括,预处理器配置等.这既是学习曲线又是引入更多潜在的失败点.此外,它使支持和更改变得更加乏味 - 您必须检查许多文件/配置以了解正在发生的事情.

  7. 占位符 - 速度/自由标记比JSTL更多吗?在JSTL中,您放置占位符,并使用模型(放置在请求或会话范围内,由控制器)来填充这些占位符.

所以,说服我除了普通的JSP之外我应该使用上面的任何框架而不是/.

java jsp velocity freemarker tiles

95
推荐指数
4
解决办法
3万
查看次数

Sitemesh有哪些替代方法可以帮助在Spring MVC应用程序中布局JSP/JSTL页脚/标题?

我试过从我的Sitemesh装饰器中排除某些页面,但它似乎没有遵循自己的逻辑:

<decorators>
    <excludes>
        <pattern>/register</pattern>
    </excludes>
</decorators>
Run Code Online (Sandbox Code Playgroud)

Sitemesh有哪些替代方案可以作为主要使用普通JSP/JSTL的Spring MVC应用程序中的替代品?

java jsp jstl spring-mvc sitemesh

5
推荐指数
1
解决办法
3015
查看次数

标签 统计

java ×2

jsp ×2

freemarker ×1

jstl ×1

sitemesh ×1

spring-mvc ×1

tiles ×1

velocity ×1