为什么要使用JSP模板引擎

喜之郎 发布于 2012/12/10 13:55
阅读 15K+
收藏 0
至今搞不懂为什么要用模板引擎像 FreeMarker , Velocity 等等,JSP加EL、JSTL、OGNL已经能解决了,并且像JSTL里面跟SQL操作相关标签的我从来不用,那这部分难道不是累赘?用了 模板引擎 后能还来什么方便之处。请各位说说吧。
加载中
0
宏哥
宏哥

之所以用模板引擎, 其实就是一个原因, 引号的嵌套.

代码需要用引号, 很容易和 页面的引号发生嵌套, 使得编码非常困难.

如果有JSTL 啥的, 确实不需要Freemaker了.

实际上, PHP,ASP等, 都是这个问题.

模板的最重要目标, 就是将普通的 数据填充逻辑, 是非, 迭代等, 去除引号. 这样就能简化页面以及视图逻辑的处理.


喜之郎
喜之郎
回复 @喜之郎 : 引号的嵌套只不过内存用单引号即可。三层嵌套基本没有。
喜之郎
喜之郎
这些旧的技术完全可以解决。
0
宏哥
宏哥

回复 @喜之郎 : 所以这些open source的技术,大多都毫无用处, 徒填麻烦, 把简单事情复杂化, 再洗码农的脑, 就是它们的生存方式.

模板本来就是很简单的东西.

0
宏哥
宏哥

直接给你例子了:

<div id="welcome">Welcome <a href="#">{user.username}</a> <a href="{site}home/logout">logout</a></div>
        <div class="clear"></div>
        {if:isset(menus)}
        {if:menus}
        <div id="moduleList">
            <ul>
                {foreach:menus,$menu}
                <li {if:$menu.is_active} class="current" {end}><div><a href="{site}{$menu.m_uri}/">{__($menu.m_label)}</a></div></li>
                {end}
            </ul>
        </div>

0
Inside
Inside
老锤子能敲钉子,但是握柄不够长,握起来费事,力矩不够敲起来也费力,所以有人希望有一种握柄稍长的用起来更舒服的锤子,结果自然就是有人生产握柄稍长的锤子。
喜之郎
喜之郎
回复 @坑主 : 别人重复造轮子,你就重复造锤子。
子木007
子木007
这个比喻很赞
0
红星xx
红星xx
模板引擎 一般给 美工用的 ,或者 给 前端用的 (反正就不是给后端用的)。简单掌握模板引擎几个语法 ,就可以套模板了。 不用  写原生的 jsp  , 不知道你那 情况是 么样的 ,至少我这情况是这样的。
喜之郎
喜之郎
能写模板的人,一般都有写代码的能力。前台美工顶多写HTML。
0
逝水fox
逝水fox
因为不能面面俱到所有需要都能简单的达到自己的目的。所以就有人针对自己用的不爽的地方出个新的东西。
0
gtd
gtd
freemarker的宏很有用,相当于带参数的块调用,有利于代码重用。jsp的自定义标签也许能实现,不过麻烦很多。 还有如果你用过cms,会发现cms一般都有更高级的标签定义,这功能用freemarker velocity实现会更容易。 另外,做自动生成代码工具,jsp貌似不太好搞,模版就比较方便。 推荐一个beetl,结合了jsp和freemarker的优点,并且性能更优异。
gtd
gtd
回复 @喜之郎 : 是的,如果JSP用的好确实没问题。主要是初期要制定一套标准和基础重用的东西,让开发团队能写出相对一致和简洁的代码。选择什么应该都行,看技术领导熟哪个
喜之郎
喜之郎
代码重用完全可以用Java类来实现。
0
缪斯的情人
缪斯的情人

1.JSP标签的复杂性决定的,像一些foreach迭代,嵌套处理起来很麻烦

2.模板引擎是为流程性工作开发的,静态页面很好的和业务逻辑分离,这样前端的页面拿来就能用

3.模板引擎的layout模式,替代了include式的加载,简单的实现组件化重用

4.此处省略8000字,急着去WC,到此为止吧

缪斯的情人
缪斯的情人
回复 @喜之郎 : 你了解下layout的作用,就知道他不是单纯的include,而是更强大的功能
缪斯的情人
缪斯的情人
回复 @喜之郎 : 怎么扯上VB了
喜之郎
喜之郎
3 include足矣。
喜之郎
喜之郎
2 前台MM写的HTML从来不能直接用。
喜之郎
喜之郎
1,一个嵌套循环还能怎么简单,用VB写循环比用Java循环要简单?
0
y
ylmotol7

搞笑的吧,到底知道楼上说的代码复用是哪一块的代码复用不?说的都是你自己公司的情况。。。有啥意义呢?

用jstl你也是用,为啥不能用一个freemarker之类的一个东西就能既抛弃了jsp又抛弃了jstl?

例如引号之类的旧技术问题确实可以解决,那你为啥要用jstl?为啥不直接用jsp?还不是为了图方便?为啥还是要用jstl这个锤子或者轮子呢?

返回顶部
顶部