﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-goldrain-随笔分类-WEB开发框架</title><link>http://www.blogjava.net/goldrain/category/2294.html</link><description>面向对象，面向属性，面向业务</description><language>zh-cn</language><lastBuildDate>Fri, 18 Apr 2008 03:12:36 GMT</lastBuildDate><pubDate>Fri, 18 Apr 2008 03:12:36 GMT</pubDate><ttl>60</ttl><item><title>Jacker开发框架概述 （Html结合Ajax）</title><link>http://www.blogjava.net/goldrain/archive/2008/04/08/191518.html</link><dc:creator>goldrain</dc:creator><author>goldrain</author><pubDate>Tue, 08 Apr 2008 07:45:00 GMT</pubDate><guid>http://www.blogjava.net/goldrain/archive/2008/04/08/191518.html</guid><wfw:comment>http://www.blogjava.net/goldrain/comments/191518.html</wfw:comment><comments>http://www.blogjava.net/goldrain/archive/2008/04/08/191518.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/goldrain/comments/commentRss/191518.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/goldrain/services/trackbacks/191518.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Jacker模块开发主要可分为操作界面和提交数据两部分。其中既保留了传统的URL，Html，又扩展引入了Ajax&nbsp;&nbsp;<a href='http://www.blogjava.net/goldrain/archive/2008/04/08/191518.html'>阅读全文</a><img src ="http://www.blogjava.net/goldrain/aggbug/191518.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/goldrain/" target="_blank">goldrain</a> 2008-04-08 15:45 <a href="http://www.blogjava.net/goldrain/archive/2008/04/08/191518.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax应用发布 - 货代管理系统</title><link>http://www.blogjava.net/goldrain/archive/2008/04/01/190070.html</link><dc:creator>goldrain</dc:creator><author>goldrain</author><pubDate>Tue, 01 Apr 2008 07:03:00 GMT</pubDate><guid>http://www.blogjava.net/goldrain/archive/2008/04/01/190070.html</guid><wfw:comment>http://www.blogjava.net/goldrain/comments/190070.html</wfw:comment><comments>http://www.blogjava.net/goldrain/archive/2008/04/01/190070.html#Feedback</comments><slash:comments>14</slash:comments><wfw:commentRss>http://www.blogjava.net/goldrain/comments/commentRss/190070.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/goldrain/services/trackbacks/190070.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这是一款在线软件，主要是演示Ajax效果及框架理念。所有js库开源&nbsp;&nbsp;<a href='http://www.blogjava.net/goldrain/archive/2008/04/01/190070.html'>阅读全文</a><img src ="http://www.blogjava.net/goldrain/aggbug/190070.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/goldrain/" target="_blank">goldrain</a> 2008-04-01 15:03 <a href="http://www.blogjava.net/goldrain/archive/2008/04/01/190070.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>发几张B/S软件界面图</title><link>http://www.blogjava.net/goldrain/archive/2007/03/09/102815.html</link><dc:creator>goldrain</dc:creator><author>goldrain</author><pubDate>Fri, 09 Mar 2007 06:13:00 GMT</pubDate><guid>http://www.blogjava.net/goldrain/archive/2007/03/09/102815.html</guid><wfw:comment>http://www.blogjava.net/goldrain/comments/102815.html</wfw:comment><comments>http://www.blogjava.net/goldrain/archive/2007/03/09/102815.html#Feedback</comments><slash:comments>27</slash:comments><wfw:commentRss>http://www.blogjava.net/goldrain/comments/commentRss/102815.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/goldrain/services/trackbacks/102815.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这套系统基于J2EE和Ajax技术，发几张截图供参考...&nbsp;&nbsp;<a href='http://www.blogjava.net/goldrain/archive/2007/03/09/102815.html'>阅读全文</a><img src ="http://www.blogjava.net/goldrain/aggbug/102815.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/goldrain/" target="_blank">goldrain</a> 2007-03-09 14:13 <a href="http://www.blogjava.net/goldrain/archive/2007/03/09/102815.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对DTO的再认识: 用PO代替DTO</title><link>http://www.blogjava.net/goldrain/archive/2007/02/25/100594.html</link><dc:creator>goldrain</dc:creator><author>goldrain</author><pubDate>Sun, 25 Feb 2007 08:02:00 GMT</pubDate><guid>http://www.blogjava.net/goldrain/archive/2007/02/25/100594.html</guid><wfw:comment>http://www.blogjava.net/goldrain/comments/100594.html</wfw:comment><comments>http://www.blogjava.net/goldrain/archive/2007/02/25/100594.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/goldrain/comments/commentRss/100594.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/goldrain/services/trackbacks/100594.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 以前就有人这么尝试过,不过会遇到一个问题:就是在进行DTO到PO的属性拷贝时,无法区分哪些属性需要拷贝...&nbsp;&nbsp;<a href='http://www.blogjava.net/goldrain/archive/2007/02/25/100594.html'>阅读全文</a><img src ="http://www.blogjava.net/goldrain/aggbug/100594.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/goldrain/" target="_blank">goldrain</a> 2007-02-25 16:02 <a href="http://www.blogjava.net/goldrain/archive/2007/02/25/100594.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>返朴归真，简单模版</title><link>http://www.blogjava.net/goldrain/archive/2005/07/24/8353.html</link><dc:creator>goldrain</dc:creator><author>goldrain</author><pubDate>Sun, 24 Jul 2005 13:40:00 GMT</pubDate><guid>http://www.blogjava.net/goldrain/archive/2005/07/24/8353.html</guid><wfw:comment>http://www.blogjava.net/goldrain/comments/8353.html</wfw:comment><comments>http://www.blogjava.net/goldrain/archive/2005/07/24/8353.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/goldrain/comments/commentRss/8353.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/goldrain/services/trackbacks/8353.html</trackback:ping><description><![CDATA[人们认为 servlet 中 print HTML 太麻烦了，于是 jsp 出现了； <br />
人们又认为 jsp 中的 scriptlet 太强大，容易混乱，于是模板出现了； <br />
人们又认为模板功能太弱了，于是模板有了脚本语言、控制逻辑...； <br />
...... <br />
我们到底想要什么？！
<p>这是我在网上看到的一段对模版语言的评价，令人思考。模版语言是否已经走上了一条打乱页面展示，破坏页面开发的老路？我们究竟需要怎样的展示层？<br />
先说说我对动态页面的理解。动态页面自然就是页面内容会随后台改变的页面了，这种理解自然没有问题，但对思考问题毫无意义。看看C/S结构的软件界面，再复杂的交互界面也一般是固定的布局，然后在布局里显示动态的数据。推广到如何规范B/S开发？自然动态页面也要有固定的布局，那就是静态页面。动态页面只不过是在静态页面固定的布局中加入些动态的内容而已。如果这么来理解，你会发现现在的很多动态页面技术很有问题。</p>
<p>现有流行的动态页面技术，jsp,脚本模版如velocity,freeMarker等等，它们都具有强大的运算能力，但正是这些在页面逻辑的侵入，使得静态页面布局被摧毁，导致页面难以维护，特别是最擅长做页面的美工无法面对这些动态页面。</p>
<p>我以前开发的大部分时间，几乎都是热衷于自己熟悉的JSP，后来终于厌倦了,jsp的&#8220;无所不能&#8221;完全打乱了页面布局，而标签在DreamWeaver中的效果更是惨不忍睹，我认识到该放弃jsp了。velocity,freemarker等的优点也是有目共睹的，学习简单，开发方便（至少对程序员是如此），而且实现了一定的约束，防止在页面被写进业务层的代码。但一些jsp的缺陷在脚本模版中仍然存在：脚本继续破坏页面布局，必须启动引擎解析才能看到真实效果，离所见即所得还有距离；另一方面，虽然其语法号称简单，但你就能很快精通么？既然界面可以使用html展示，后台可以用java实现而且java更强大，为什么还要再学习另一种所谓的脚本语言？(可能这也是很多java开发员包括我当初更倾向使用jsp的原因吧)。在看velocity,freemarker写的页面时，我发现里面扩展了大量的功能：比如可以访问request对象及方法，比如可以用一长串的类名加方法名调用java静态方法等等。这些为了所谓的开发方便而进行的修修补补，不是要向jsp靠拢么，简直就是返祖现象！越是修补越是背离模版的初衷：简单。</p>
<p>关于页面开发是否能让美工直接参与，似乎大家已经有了共识，不能!毕竟只是美工，美工怎么能面对那些看不懂的脚本呢？但对页面的布局和风格控制又是美工所擅长的，怎么不能让她们参与开发呢？其实现在的模版技术，也未必只有velocity,freeMarker等支持脚本的模版，还有一个重要的分支：我称之为简单模版。</p>
<p>简单模版就是所谓的那种&#8220;功能太弱了&#8221;的模版，只有展示数据的能力，剔除所有页面逻辑和计算，没有任何脚本。而且我了解的这类模版如fastm,jdynamite等都是聪明的模仿php模版，用注释做标记，所以对页面布局的破坏极小，模版文件就是合法的html文件，可以直接在浏览器里看到效果(这个甚至比C/S所见即所得开发都强)。简单模版为美工直接参与改动出专业美观的页面提供了可能性。我认为这是简单模版的真正价值所在:为页面开发的分工提供了可能性。事实上这种简单模版的技术我也看到被用到了实际的开发中，并被证明是有价值的。</p>
<p>简单模版的优势很明显：<br />
1.更符合模版产生的初衷：往静态页面布局嵌入动态内容，产生动态页面。<br />
2.速度；脚本模版需要java解析脚本运行，简单模版则所有计算都直接在java中做，理论上讲简单模版速度效率上更能获取优势。<br />
3.引擎实现简单，模版页面没有了计算逻辑，自然解析引擎的实现会简单很多。我自己也维护着一个开源简单模版:eastm。如果要我写个velocity的话，似乎难度比较的大:);<br />
4.还有就是因为页面逻辑都到了类中实现，页面逻辑的重用也比写在页面里来的方便。<br />
</p>
<p><br />
简单模版崇尚简洁，理念美丽而朴实，从技术方向上会给开发特别是分层开发带来极大的方便：<br />
静态demo html页面稍加改动就可以用在展示页面的开发中；<br />
美工可直接参与模版页面的布局和美化而不用担心会改坏页面；<br />
不用启动任何引擎或web服务，不用装任何插件，双击html就能在浏览器看到比较完整的用户操作界面效果；（C/S开发都做不到这点）<br />
<br />
我坚信，当简单模版不仅简单而且足够强大的那天来临时，必将取代脚本模版而成为模版技术的主流！<br />
</p>
<img src ="http://www.blogjava.net/goldrain/aggbug/8353.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/goldrain/" target="_blank">goldrain</a> 2005-07-24 21:40 <a href="http://www.blogjava.net/goldrain/archive/2005/07/24/8353.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>