该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2012-01-04
wangchangbing 写道 velocity和freemarker的功能是jsp不能比的 建议你深入研究一个替换掉jsp
这个学习过,但不是很深入,就我知道就是把一个map作为参数传递给template替换掉里面的标签内容,外加一些循环标签,宏定义功能等。 能否列举一下freemarker velocity能做到的jsp又做不到的应用在商城中的效果? |
|
返回顶楼 | |
发表时间:2012-01-04
onecan 写道 ..., 能否列举一下freemarker velocity能做到的jsp又做不到的应用在商城中的效果?
我想用freemarker, velocity的理由并不是 jsp 不能做到才去用的。实话跟你说,jsp能做到的freemark,velocity都能做到,反之也是一样。 目前的技术都很成熟了,没有做不到只有想不到。 |
|
返回顶楼 | |
发表时间:2012-01-04
如果系统较小,用什么都无所谓。
如果系统较大,hibernate,尤其是hibernate的缓存,非常不合适~~ 我们有个系统经常内存溢出,hibernate的Entity不知道什么时候累积了,也不知道它到底都在干什么,很麻烦。 如果用IBatis,其实也就是出的早点。IBatis并不严谨,看源代码你就知道。 对于商城,如果做起来了,数据层估计以后就是在开发guzz的单个项目定制版。希望您了解下,或许思路上有所帮助。 hibernate偷偷干的事情太多,跟钱有关的系统还是少用比较好,IBatis都比它强。个人见解。 |
|
返回顶楼 | |
发表时间:2012-01-04
tongyi2005 写道 onecan 写道 ..., 能否列举一下freemarker velocity能做到的jsp又做不到的应用在商城中的效果?
我想用freemarker, velocity的理由并不是 jsp 不能做到才去用的。实话跟你说,jsp能做到的freemark,velocity都能做到,反之也是一样。 目前的技术都很成熟了,没有做不到只有想不到。 理论上FreeMarker和velocity能做的,jsp都能做到,但是jsp能做的,FreeMarker和Velocity就不一定能做了,比如你可以直接在jsp中定义内部类,可以在jsp中调用web service等等,可以说普通java类可以做得事情,jsp都可以做,但是FreeMarker和Velocity就不行了。 FreeMarker和Velocity的优势不是和jsp比谁的功能更强大,而是为了实现表示层中尽量不出现业务逻辑。 我的项目中很多地方用到FreeMarker,比如分页标签的渲染、各种自定义标签的渲染、内容模型自定义字段的渲染、发送email的模板、发送短信的模板等等,但是我的MVC视图层是直接用的jsp,因为,避免视图层出现过多业务逻辑,这一条可以通过人员的培训和约束来实现,但是有时候特殊情况下你不得不用一些jsp的特性,比如:我们经常需要仓促得为客户修改正在运行中的项目,系统不允许停,更不允许重启web server,这样的情况下,我就不得不把一些简单的功能直接在jsp中修改,这样的情景很多。 |
|
返回顶楼 | |
发表时间:2012-01-04
myreligion 写道 如果系统较小,用什么都无所谓。
如果系统较大,hibernate,尤其是hibernate的缓存,非常不合适~~ 我们有个系统经常内存溢出,hibernate的Entity不知道什么时候累积了,也不知道它到底都在干什么,很麻烦。 如果用IBatis,其实也就是出的早点。IBatis并不严谨,看源代码你就知道。 对于商城,如果做起来了,数据层估计以后就是在开发guzz的单个项目定制版。希望您了解下,或许思路上有所帮助。 hibernate偷偷干的事情太多,跟钱有关的系统还是少用比较好,IBatis都比它强。个人见解。 严重同意啊。 一想起来Hibernate要缓存我的钱,还要按照它的规矩设计数据库,我就恨的呀 同意对iBatis的看法,涉及到分表分库,也要做大量改造扩展,还不如直接用Spring JdbcTemplate控制力强 |
|
返回顶楼 | |
发表时间:2012-01-04
evanzzy 写道 myreligion 写道 如果系统较小,用什么都无所谓。
如果系统较大,hibernate,尤其是hibernate的缓存,非常不合适~~ 我们有个系统经常内存溢出,hibernate的Entity不知道什么时候累积了,也不知道它到底都在干什么,很麻烦。 如果用IBatis,其实也就是出的早点。IBatis并不严谨,看源代码你就知道。 对于商城,如果做起来了,数据层估计以后就是在开发guzz的单个项目定制版。希望您了解下,或许思路上有所帮助。 hibernate偷偷干的事情太多,跟钱有关的系统还是少用比较好,IBatis都比它强。个人见解。 严重同意啊。 一想起来Hibernate要缓存我的钱,还要按照它的规矩设计数据库,我就恨的呀 同意对iBatis的看法,涉及到分表分库,也要做大量改造扩展,还不如直接用Spring JdbcTemplate控制力强 Spring JDBC Template遇到分表、分库就好使了?好使在哪里? 很多人提倡Spring JDBC Template,对其崇拜程度就像崇拜Spring一样,Spring是不错,但是不代表Spring出品的所有东西都OK,Spring JDBC Template在我看来就是一个JDBC Template,如同它的名字,如果你可以忍受程序中夹杂一堆SQL语句,那么你认为它是好东西这无可厚非。 |
|
返回顶楼 | |
发表时间:2012-01-04
讨论这些问题,基本没有ali系的人,失去意义。要先把业务做起来,架构是迭代出来的,不是一天拍脑袋定下来的、taobao最初是从cgi,php做的
|
|
返回顶楼 | |
发表时间:2012-01-04
引用 1。模板技术缺少灵活性,目前Php的大型商城系统有很多的模板可以用,这个也不全都是官方自己开发的,这个是Java商城需要向php商城学习的地方。因为java是mvc方式建设的,有java,jsp, html等,java class需要重启服务器才能生效,而且很难像php一样,把所有东西写在一个目录拷贝到服务器上即可使用,目前我还是没有什么好的思路能达到这个效果的,考察了apache tiles/sitemesh/freemarker/velocity等,都没有想到办法。。。只能做到内置好模板让用户挑选。要达到大家都能做模板的程度,需要把代码和文档继续完善和开源。
模板技术, 其实可以研究一下dedecms, discuz supesite 他们的标签技术, 我前段时间搞过dedecms, 发现修改模版, 有许多标签可以使用, 就此来看, 用java应该也可以将灵活性做到很强, 一切商业逻辑全部封起来, 前台html,css随意调整 , 数据部分用标签来填就行了, 先不允许 复杂逻辑, (目前还没玩过java的模版) 用户自己的页面, 主元素, 或者说模型(不同的模型拥有不同的字段), 1. 目录(可以考虑支持多级,dedecms目前只支持一级) 2. 产品 (包含许多字段, 一一调用) 3. 自定义页面 4. 购物车 5. ....(随时扩充模型) |
|
返回顶楼 | |
发表时间:2012-01-04
melin 写道 讨论这些问题,基本没有ali系的人,失去意义。要先把业务做起来,架构是迭代出来的,不是一天拍脑袋定下来的、taobao最初是从cgi,php做的
paulwong 写道 |
|
返回顶楼 | |
发表时间:2012-01-04
george_space 写道 tongyi2005 写道 onecan 写道 ..., 能否列举一下freemarker velocity能做到的jsp又做不到的应用在商城中的效果?
我想用freemarker, velocity的理由并不是 jsp 不能做到才去用的。实话跟你说,jsp能做到的freemark,velocity都能做到,反之也是一样。 目前的技术都很成熟了,没有做不到只有想不到。 理论上FreeMarker和velocity能做的,jsp都能做到,但是jsp能做的,FreeMarker和Velocity就不一定能做了,比如你可以直接在jsp中定义内部类,可以在jsp中调用web service等等,可以说普通java类可以做得事情,jsp都可以做,但是FreeMarker和Velocity就不行了。 FreeMarker和Velocity的优势不是和jsp比谁的功能更强大,而是为了实现表示层中尽量不出现业务逻辑。 我的项目中很多地方用到FreeMarker,比如分页标签的渲染、各种自定义标签的渲染、内容模型自定义字段的渲染、发送email的模板、发送短信的模板等等,但是我的MVC视图层是直接用的jsp,因为,避免视图层出现过多业务逻辑,这一条可以通过人员的培训和约束来实现,但是有时候特殊情况下你不得不用一些jsp的特性,比如:我们经常需要仓促得为客户修改正在运行中的项目,系统不允许停,更不允许重启web server,这样的情况下,我就不得不把一些简单的功能直接在jsp中修改,这样的情景很多。 是的, 有时候我觉得逻辑也得分种类, 纯粹为了控制显示效果的,而且重用性很低的逻辑就直接搞到jsp里面算了, 省得都搞到类里面, 修改起来实在不方便, 不然有可能就会因为很小的一个东西重启服务, 感觉真是不直当的 |
|
返回顶楼 | |