论坛首页 Java企业应用论坛

PHP处理不同主题页面显示很先进,比java要好多了

浏览 2187 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-09-16  
当有不同的主题外观需要,就是更换显示的模板。实现逻辑和显示的分离。
以wordpress为例;
comment-template.php
bookmark-template.php
general-template.php
~~~~~~~~
页面显示的php文件可以调用*.template.php中的方法,来提取数据。

在java中,我们的action方法时把数据生成好,再调用显示的引擎来显示数据。

两者不同就是一个是显示时再调用取数据的方法,一个是先把数据取好。
再进一步,逻辑组件暴漏一组操作不同数据的方法,显示的组件跟据需要取不同的方法得到数据,显示页面。


PHP这样做的好处是巨大并且显然的。理由:
1,在不同的主题下取的数据并不尽相同,php需要什么数据调用什么方法取,而java就没有这样的灵活性数据是先取好的。
   比如在wordpress中,有的index首页需要显示分类,有的主题在首页可能要显示最热门的三篇文章(CMS类型的blog),还有音乐类型的Blog,主页显示的数据都不尽相同。
2,数据先取很蹩脚。
   在java中,为了在页面显示时,得到所需要的数据,不得不把可能用到的所有的数据都取一次。要不在model不断的put数据,要不就写一个HandlerInterceptorAdapter先把共同的数据都取得。这样多了很多工作。
3,这么做美工设计页面时,更加自由了。

其实java使用jsp也可以按这种方式做到的,freemark估计做不到了。
当然PHP的很多地方也不是完美的,混写的方式,主题的php文件,不只能调用*template.php的方法,还能直接调用任何的其它方法,甚至能入库查询直接取数据,如果想个办法限定权限只能调用*template.php的方法就好了。其它PHP的本身的缺点就不说了。


大家有什么不同的看法。
   发表时间:2008-09-16  
在页面模板里面根据需要进行数据访问和渲染在Java里面自然可以做得到,而且方式可以更加灵活,你可以去钻研一下sitemesh是怎么用的。

其实你说的这种用法,Confluence用sitemesh进行模板装饰就大量的采用了,而且机制做的非常强大和灵活,模板里面还可以根据不同的条件和参数选择性嵌入更多的模板,模板里面再根据不同的条件在渲染的时候取相应的数据。

所以说你不知道不等于Java做不到。
6 请登录后投票
   发表时间:2008-09-17  
这关php和java语言啥事,都是扩展
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics