模板编织技术2J-可作用于任何语言的任何项目

快速开发师 发布于 2014/10/06 11:06
阅读 293
收藏 2

     Twoj(template weaving on Jsp) 在jsp上进行模板编织,不需要学习模板语言,jsp就是良好的代码生成器,并且jsp还可以自定义标签,jsp比起freemarker作为代码生成器来说要优越得多。 只要熟练了,任何大型小型的项目都可以很快做完,因为是模板快捷构造技术,任何项目可以由程序员定义个人乃至公司需要的模板库。

打开编程的天窗

     当你在完成一个新的系统模块开发的时候,你仅需要在你自己编织的模板库里选取一个近似于你要完成的一个或多个模板(多个模板就将他们组合一下),就好比是先排序然后立刻就能找到那个接近你数据的值一样方便,你只需要用眼睛看这些模板代码运行的时候的功能截图,然后选取,然后配置完简单的数据库字段和简单的参数就可以输出得到你当前的模块代码,因为模板是相似于你需要的业务的代码,也就意味着会不完全是你想要的代码,但你只需要少量地修改即可,模板的作用就是避免重复编码,能够减少多少重复手动编程就减少多少。况且,即使你编织的模板不能达到你想生成的代码100%符合你当前业务模块的要求,那你也可以精炼地去编织你的模板以达到更高的通用性。twoj技术只是一个快捷地自由地构建源代码模板的构造平台技术,强调的是training and DIY。你越来越熟练地构造你自己公司的业务代码模板,因为你自己很熟悉,所以并可以轻松维护这些模板,你就没必要去花钱买什么拖拽开发之类的工具,况且那些工具并不一定适合你的项目,目前的拖拽之类的开发工具有金蝶K3BOS,SAP,EBM,但那些偏向于ERP业务之类的,你也买不起,很明你当前的项目还并不是ERP项目仅仅还只可能是一个一般的管理软件,并有可能根本就不是JAVA程序而是Object-C等其他类型的程序。所以我建议所有的程序员们公司们都直接使用JSP来作为自己的模板引擎.

和其它技术比较

    freemarker等模板语言技术,也具有类似的功能,但语言性很弱,还不如java来的直接;JSP中可以嵌入JAVA脚本,但当你不喜欢嵌入脚本的方式,你也可以使用JSTL使用EL表达式,你甚至还可以自定义标签库来生成源代码,JSP就是如此丰富的一个载体,我的这种技术不过是对大家起一个引导作用,让大家知道原来还可以这样编程。

如此简单的原理

    我这里一直在说生成源代码,但我一直说的是用JSP的方式,貌似最大的疑问就是JSP明明是ie浏览器和tomcat之间交互的事情,是服务器上的脚本,说直白点JSP把JSP页面里的信息远程发给浏览器。  如果可以让JSP把他要表示的内容直接发到你的硬盘里,那岂不是就是可以具有‘生成’这个概念。在JAVA类库里早就有此作用的类,它就是URLConnection,你可以用它URLConnection去访问JSP替代浏览器,然后你将获得一个流通过openStream方法,你用FileOutputStream就可以把流里的JSP发送的页面内容转存到硬盘上,达到‘生成’的目的。所以说JSP是可以生成源代码的。像这样的方式其实很早就有人在使用,例如用来生成邮件内嵌的HTML网页,把网页本身文件保存起来。

你一定会误解的地方,

 1 你会觉得这只是一个用来开发JAVA代码的技术。 (大错特错,他是针对源代码的,无论你是C,C++,C#,python...,不都是文本的源代码吗?)
 2 你会觉得他就只是一个代码工具。 (如果你要这样说,那JSP技术本身就被你说成工具了,甚至JAVA也只是一种工具。它是一种技术,或平台,因为你在上面可以制造工具,是可以生产工具的工具)
 3 你会觉得麻烦,还不如直接拖拽得到。 (如果你这样想,那你不是一个做生意当老板的料,因为你不知道一劳永逸,投入和产出,甚至你连竞争的求生意识都没有,因为那些直接拿来就可以用的东西别人也可以拿来就用,你没有优势要比别人强,你要比别人强最应该的方式就是找到一个难的东西然后trainning!!)
   

 

代码样例:

 http://www.ifelsefor.cc


如需讨论可联系方式:QQ3040457934,QQ群87342857

 

 

加载中
0
南湖船老大
南湖船老大
没看懂是啥。。只看到JSP里一大堆Java代码。。。
快速开发师
快速开发师
回复 @南湖船老大 : 这是高新技术,等级太低也许乍看起来有些茫然,尤其是不知道拿来干什么。
南湖船老大
南湖船老大
回复 @快速开发师 : 是没看到有什么优雅的地方
快速开发师
快速开发师
真的有那么难吗
0
坏孩子
坏孩子
并且jsp还可以自定义标签

说的就好像其他模板引擎都不可以一样。


jsp作为模板引擎的确可以,但是你去生成代码还得开个jee容器,太麻烦了。即使做个单元测试也很麻烦。

freemarker就没这个问题


坏孩子
坏孩子
回复 @快速开发师 : 你这个思路,大概,不知道什么时候就有了,参考activex,java里面也有一些,但我不太用,不记得了。我觉得这个比较像做一个支持宏的编译器,你只不过用了jsp的编译器。 所以正确的做法是直接使用tomcat里面的jspc来做。你现在的做法就是走了个捷径
快速开发师
快速开发师
jee容器例如tomcat只开一次,以后的若干次使用都直接使用main方式搞定,freemarker里调用工具方法十分困难,限制了语言的特性,而jsp本身既支持像freemarker一样的标记语言,例如JSTL,又支持java脚本直接内嵌的开放式,还支持自定义标签。比freemarker丰富得多,如果你连tomcat第一次都不想开启,那可以使用jetty内置服务器,直接main方法启动
返回顶部
顶部