锁定老帖子 主题:FreeMarker和Jsp的应用范围
精华帖 (4) :: 良好帖 (2) :: 新手帖 (1) :: 隐藏帖 (2)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-21
最后修改:2009-11-21
引用 1.定位不一样的,jsp是server page,要有server code的,虽然现在更多是view角色,但它很轻易就做到独大了,我觉得这是越权。 2.scripty,fm对象属性、方法访问比较简洁,语法也简单,让一个美工来读规范的fm和jsp代码,一般fm更容易理解。groovy有gsp,但他们(和jsp)都把page中的dyn code(java、groovy代码)放在第一位,html tag放在此为(个人感觉),而fm始终是html html(做web时候)——因为我就是用来生成html的么,比较下macro和taglib的设计思想就知道了。 我觉得这个更多是感觉问题,最终结果是一样的。 引用 3.性能上,fm缓存一下很方便的,延迟refresh load,生成后的html的cache直接就在配置里配就好了,jsp好像要第三方做才可以。 这个不错,相对方便。但是页面Cache多见于互联网应用,对于企业应用来讲,访问量大而又对实时性要求不高的情况并不多见。更多情况下在用的是Data Cache。 引用 4.还是macro,jsp的include static / dyn实现方式,可重用性不如macro高。 一般情况下重用性只和设计有关,和技术无关。 引用 5.个人喜欢——java么,你就管好server端的事儿,要想多管的前端的,就弄个web bean,整一套东东过来(jsf貌似要这么做,zk也做得不错),gwt/dwr等更event-driven dev的方式不太感冒,但是真整一套过来,灵活性就不好说了(我正在为努力适应web dynpro而努力,优点体会)——还是喜欢markup + js这种(svg > flash flex > **activex,在我眼中)简洁明了的关系和开发模式。 个人喜欢不算理由... |
|
返回顶楼 | |
发表时间:2009-11-21
番茄有益 写道 把中文变成拼音显示的问题,我也插一句。看怎么考虑这个问题,我认为在哪里解决都是合理的,可以认为这是一个显示逻辑,数据我给出来了,页面怎么显示是页面的事情。你也可以说,我就要要一个拼音,你需要直接给我结果。 扩展一下,也许按照老外的习惯,把名放到前面呢,都推给后台处理,没有太大的必要。 如同上面那个问题,一个Date给出来,在zh_CN 下应该是2009-11-20,在en_US 下应该是 11/20/09 ,这个也可以理解为页面的显示逻辑。 关键有些时候在JSP上想动些小手脚,还是比较方便的。什么都弄到Controller里,确实没有必要啊。 软件以用为本,以实用简洁易维护为原则,只要不是故意违反,没有那么多限制吧。 用JSP2.0 + tagfile ,也是很好的方案,我认为也不比Freemarker差到哪里去,用过的人都应该很清楚,我考虑用FM生成的东西更好打包管理容易,更方便其他项目重用。 我跟你想法很像,简单,方便,清晰就OK,没有太多的约束。 原则这东西有时候很让人挠头。就像我们老祖宗说大丈夫宁折不弯是美德,但是改天他又说大丈夫要能屈能伸...我靠,到底怎样?... 所以我选技术就三点,1满足需求,2用着方便,3未来不给我找太多麻烦。对于Web开发来讲JSP基本满足,FreeMarker呢? |
|
返回顶楼 | |
发表时间:2009-11-21
从为不否定jsp+tagfile不是个很好的方案,甚至可以说是个最强大的解决方案。
如果做传统的web应用,基本上可以认为freemarker没有什么优势,因为第一IDE支持不好,第二这个时候的freemarker通常还得借助于taglib。 但是如果作ajax的web应用的话,那么freemarker的优势应该还是明显的。毕竟对于ajax应用来说,数据通常就是xml或者json。freemarker的表达式可以方便地支持数据展示,而jsp通常要借助于taglib。另外一点,比如输出xml数据,freemarker的输出通常可以由用户进行扩展,而jsp的输出总是比较多的是通过定义,就简洁上来说,还是freemarker略胜一些。 顺便说一句,taglib无疑功能强大,一些用于格式转化的taglib先不说,但是对于一些揉和了业务控制、权限管理的taglib,传统web页面中广泛支持无可厚非,但是在ajax应用中如果过多的依赖话,是不是可以认为在业务处理得不完善呢。 |
|
返回顶楼 | |
发表时间:2009-11-21
番茄有益 写道 把中文变成拼音显示的问题,我也插一句。看怎么考虑这个问题,我认为在哪里解决都是合理的,可以认为这是一个显示逻辑,数据我给出来了,页面怎么显示是页面的事情。你也可以说,我就要要一个拼音,你需要直接给我结果。 扩展一下,也许按照老外的习惯,把名放到前面呢,都推给后台处理,没有太大的必要。 如同上面那个问题,一个Date给出来,在zh_CN 下应该是2009-11-20,在en_US 下应该是 11/20/09 ,这个也可以理解为页面的显示逻辑。 关键有些时候在JSP上想动些小手脚,还是比较方便的。什么都弄到Controller里,确实没有必要啊。 软件以用为本,以实用简洁易维护为原则,只要不是故意违反,没有那么多限制吧。 用JSP2.0 + tagfile ,也是很好的方案,我认为也不比Freemarker差到哪里去,用过的人都应该很清楚,我考虑用FM生成的东西更好打包管理容易,更方便其他项目重用。 1.在JSP上想动些小手脚,确实是比较方便的。就好象当时不分mvc一样也是很自由的。项目中临时使用一下确实不为过。 2。但是做软件还是要精益求精的,那些格式化的东西放Controller和放Freemarker/JSP都不好,难道就不能放别的地方吗?我觉得对于格式化的东西完全可以做一个框架出来。 |
|
返回顶楼 | |
发表时间:2009-11-21
archangel 写道 xiaobin0530 写道 引用 、Macro,这个没有太多使用经验,就不做评论了,但是可以确定Jsp一定也能实现。
jsp还真没有办法实现Why呢?你要说不如Macro方便我信,但是你要说一个用Java实现出来的技术用Java原始语言做不到,这个...还真有点妖怪了 我是说jsp实现不了。你用纯jsp标签实现来看看。 |
|
返回顶楼 | |
发表时间:2009-11-21
xiaobin0530 写道 archangel 写道 xiaobin0530 写道 引用 、Macro,这个没有太多使用经验,就不做评论了,但是可以确定Jsp一定也能实现。
jsp还真没有办法实现Why呢?你要说不如Macro方便我信,但是你要说一个用Java实现出来的技术用Java原始语言做不到,这个...还真有点妖怪了 我是说jsp实现不了。你用纯jsp标签实现来看看。 Macro是基于freemarker表达式,这样比较就不能强求jsp要遵循一点表达式不用的规则。 使用jstl标签库也是能实现相似的功能。 <c:import>和<c:param> 在一个页面中的,到是没想到什么方案,不过用scriptlet到是有可能 |
|
返回顶楼 | |
发表时间:2009-11-21
最后修改:2009-11-21
case0079 写道 番茄有益 写道 把中文变成拼音显示的问题,我也插一句。看怎么考虑这个问题,我认为在哪里解决都是合理的,可以认为这是一个显示逻辑,数据我给出来了,页面怎么显示是页面的事情。你也可以说,我就要要一个拼音,你需要直接给我结果。 扩展一下,也许按照老外的习惯,把名放到前面呢,都推给后台处理,没有太大的必要。 如同上面那个问题,一个Date给出来,在zh_CN 下应该是2009-11-20,在en_US 下应该是 11/20/09 ,这个也可以理解为页面的显示逻辑。 关键有些时候在JSP上想动些小手脚,还是比较方便的。什么都弄到Controller里,确实没有必要啊。 软件以用为本,以实用简洁易维护为原则,只要不是故意违反,没有那么多限制吧。 用JSP2.0 + tagfile ,也是很好的方案,我认为也不比Freemarker差到哪里去,用过的人都应该很清楚,我考虑用FM生成的东西更好打包管理容易,更方便其他项目重用。 1.在JSP上想动些小手脚,确实是比较方便的。就好象当时不分mvc一样也是很自由的。项目中临时使用一下确实不为过。 2。但是做软件还是要精益求精的,那些格式化的东西放Controller和放Freemarker/JSP都不好,难道就不能放别的地方吗?我觉得对于格式化的东西完全可以做一个框架出来。 我的理解是,对于格式化的东西,是一个 内容 + 形式的 问题, 我想 fmt: Tag 提供了一个思路, 或许按照一个 指定的 形式 格式化内容 也算是个较好的办法 。 如上面提到的显示拼音的问题,可以是 <yourtag:format value="" type="pinyin"> 这么个意思。 |
|
返回顶楼 | |
发表时间:2009-11-22
吐血——在html中,markup tag不放在第一位放在哪(jsp taglib是compiled markup tag,不算)?
技术上再屏蔽html/js/css,比如**bean,**taglib,结果那些web uier只会增加更多的学习成本,如果做个改动?还要修改jsp tag source?多麻烦啊 |
|
返回顶楼 | |
发表时间:2009-11-22
如果只是用c fmt or **这些标签,是简洁了,但功能上就没法和fm比了
|
|
返回顶楼 | |
发表时间:2009-11-22
4.还是macro,jsp的include static / dyn实现方式,可重用性不如macro高。
一般情况下重用性只和设计有关,和技术无关。 这句话我觉得还是推荐老兄去用用macro为好,同是nested, 原始的include(page层面)和taglib(控件层面)的nested,不如tm的nested来的直接和明了 而且fm的配置相对简单,不需要<%@page 等,再者,做单元测试,不需要web容器, 还有就上有个老兄说的,错误提示更细,一看便知 |
|
返回顶楼 | |