为什么要使用JSP模板引擎

发布于 2021-12-01 22:56:33 字数 307 浏览 992 评论 22

至今搞不懂为什么要用模板引擎像
FreeMarker ,
Velocity 等等,JSP加EL、JSTL、OGNL已经能解决了,并且像JSTL里面跟SQL操作相关标签的我从来不用,那这部分难道不是累赘?用了 模板引擎 后能还来什么方便之处。请各位说说吧。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(22

嘦怹 2021-12-08 19:52:26

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

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

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

囚你心 2021-12-08 19:52:24

1,一个嵌套循环还能怎么简单,用VB写循环比用Java循环要简单?

笑红尘 2021-12-08 19:52:22

2 前台MM写的HTML从来不能直接用。

如此安好 2021-12-08 19:52:19

3 include足矣。

凡尘雨 2021-12-08 19:52:16

回复
怎么扯上VB了

毁梦 2021-12-08 19:52:15

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

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

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

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

清风夜微凉 2021-12-08 19:52:15

回复
你了解下layout的作用,就知道他不是单纯的include,而是更强大的功能

少女情怀诗 2021-12-08 19:52:14

代码重用完全可以用Java类来实现。

泛滥成性 2021-12-08 19:52:13

回复
是的,如果JSP用的好确实没问题。主要是初期要制定一套标准和基础重用的东西,让开发团队能写出相对一致和简洁的代码。选择什么应该都行,看技术领导熟哪个

岁吢 2021-12-08 19:52:12

freemarker的宏很有用,相当于带参数的块调用,有利于代码重用。jsp的自定义标签也许能实现,不过麻烦很多。 还有如果你用过cms,会发现cms一般都有更高级的标签定义,这功能用freemarker velocity实现会更容易。 另外,做自动生成代码工具,jsp貌似不太好搞,模版就比较方便。 推荐一个beetl,结合了jsp和freemarker的优点,并且性能更优异。

情绪失控 2021-12-08 19:52:10

因为不能面面俱到所有需要都能简单的达到自己的目的。所以就有人针对自己用的不爽的地方出个新的东西。

成熟稳重的好男人 2021-12-08 19:51:53

模板引擎 一般给 美工用的 ,或者 给 前端用的 (反正就不是给后端用的)。简单掌握模板引擎几个语法 ,就可以套模板了。 不用  写原生的 jsp  , 不知道你那 情况是 么样的 ,至少我这情况是这样的。

女中豪杰 2021-12-08 19:51:53

能写模板的人,一般都有写代码的能力。前台美工顶多写HTML。

反目相谮 2021-12-08 19:51:31

这个比喻很赞

把回忆走一遍 2021-12-08 19:43:00

老锤子能敲钉子,但是握柄不够长,握起来费事,力矩不够敲起来也费力,所以有人希望有一种握柄稍长的用起来更舒服的锤子,结果自然就是有人生产握柄稍长的锤子。

已下线请稍等 2021-12-08 19:43:00

回复
别人重复造轮子,你就重复造锤子。

疾风者 2021-12-08 19:25:00

直接给你例子了:

<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>

樱花落人离去 2021-12-08 19:18:25

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

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

旧伤慢歌 2021-12-08 18:55:20

回复
引号的嵌套只不过内存用单引号即可。三层嵌套基本没有。

葬花如无物 2021-12-08 18:55:20

这些旧的技术完全可以解决。

感情旳空白 2021-12-07 09:52:31

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

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

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

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文