阅读更多
项目名称: CommonTemplate
发起时间: 2007年4月
网站:http://www.commontemplate.org
代码托管:http://code.google.com/p/commontemplate/

项目介绍:
CommonTemplate是一个模板引擎,用于编译运行CTL模板语言,并且模板可以在Java,.Net,JS等中通用;
其主要目标是作为JSP,ASP.Net等页面技术的另一种选择方案,以保证用简单的语法,良好的结构,不混杂业务逻辑的方式书写页面;
适合于充当Model-View-Controller(MVC)模式应用的View角色,以使能更好的分离页面设计人员与业务开发人员的职责;
也可以作为动态文本生成工具,生成HTML、XML、Mail、Java源代码或其它文本等。

产品信息:
运行平台: JRE1.4以上版本, 操作系统无关.
开发语言: Java
开源协议: Apache Licence 2.0

项目成员:
梁飞(广州)
桂林(上海)
严荣(大连)

是什么促使你们发起/开始这个项目?
JSP, Velocity, FreeMarker混杂不统一的语法, 不友好的扩展方式, 希望实现一个语法简单统一的, 细节考虑周全的, 易于扩展的模板引擎.

该项目面向哪些使用群体?
页面开发人员, 代码生成模板开发人员, 邮件模板开发人员, 动态配置模板开发人员.

举个例子说明下用户使用您的软件能做什么?
替代JSP, 作为视图输出引擎, 并可以方便生成静态页面.
作为代码生成模板, 通过从数据库导入数据模型, 结合模板生成相应Dao,Service,Action等.
作为邮件模板, 发件动态邮件内容.
任意文本生成

您在该项目中遇到的最大挑战是什么?
坚持腾出业余时间作开发, 有时候与学习计划冲突.
项目的推广.

您在该项目中认为获得成功的要素有哪些?
高质量的软件,
全面细致的文档,
优良庞大的用户社区,
更多的第三方扩展与集成,

您对该项目有哪些期望?
能给使用者带来方便, 有更多的用户.

你们如何来协调项目?
源码控制: SVN
团队联系: Email, MSN

那你们一般花多长时间在这个项目上?
每周10-20小时

你们用的开发环境是什么
OS: Windows
IDE: Eclipse

其他人如何给你们提供建议?
论坛: http://forum.commontemplate.org


评论 共 12 条
12 楼 vb2005xu 2011-07-11 16:43
用你这个还不如 使用PHP来作为 前端 渲染 呢
11 楼 javamonkey 2011-06-25 22:44
似乎都没有什么进展,不维护了?
看看我这个吧,我打算不拖那么长,也就搞三个月搞定就完事


http://www.iteye.com/topic/1098551
10 楼 achun 2011-06-05 17:00
slieer 写道
能不能经过移植,做成一个纯浏览器端的模板。采用javascript + javascript template + json 数据呢? 这样通用性更强。无论他server端是asp,jsp,cgi,php,浏览器端只要能得到json数据,就能很好的显示。

呵呵其实基于javascript的模板是有的,我刚好也实现了一个,名字也刚好就叫
JavaScript Common Templates
对于前台模板,应用场景有所不同,
我的设计理念是基于原生语法,不重新制造新的语法。
感兴趣可以看下,我的博客里面有一些文章。顺便说说,我的JCT现在到了瓶颈阶段,找不到新的突破口,我是不打算做成框架类的,提供个可以快速部署的lib是我的初衷。
瓶颈在于由于采用了原生(html js)语法,因此永远不用在语法上升级。
可是问题来了,部件化模板支持度不够。而且现在的我有一种新的理解:
除非是大段的同样结构需要用循环来节省代码,10来条的循环还不如不做,直接写数组变量下标也许更迅速。
千头万绪啊,自己也没有确定发展方向呢。或许最终会走向widget也说不准,不过那好像不能叫纯模板。
9 楼 tw1122333 2011-05-30 10:04
System.out.println("你好")
8 楼 ol_beta 2011-05-27 23:34
看代码更新速度,用的人不多。
不过支持国货!
7 楼 jindw 2009-09-09 13:10
34982442 写道
速度没有free快,性能没有velocity好,哎

slieer 写道
能不能经过移植,做成一个纯浏览器端的模板。采用javascript + javascript template + json 数据呢? 这样通用性更强。无论他server端是asp,jsp,cgi,php,浏览器端只要能得到json数据,就能很好的显示。



试试lite xml吧

满足你们两位
6 楼 caiceclb 2009-08-18 10:00
slieer 写道
能不能经过移植,做成一个纯浏览器端的模板。采用javascript + javascript template + json 数据呢? 这样通用性更强。无论他server端是asp,jsp,cgi,php,浏览器端只要能得到json数据,就能很好的显示。


禁用js呢?客户端不要100%的依赖
5 楼 slieer 2009-08-03 09:51
能不能经过移植,做成一个纯浏览器端的模板。采用javascript + javascript template + json 数据呢? 这样通用性更强。无论他server端是asp,jsp,cgi,php,浏览器端只要能得到json数据,就能很好的显示。
4 楼 b051 2009-08-02 16:55
我用mvel
3 楼 lqixv 2009-05-15 11:46
还有就是现在论坛打不开,有点问题无处可问

看网站上的更新日志,最近更新是08年10月份更新的。我还以为不再更新了呢。到了Google看了下,才知道还在更新

现在好像在性能上有很大的问题,和别的模板引擎比差一到两个数量级,希望能解决一下性能问题

很希望能把这个问题解决好,毕竟从易用性和清晰度来说,CT还是蛮有优势的
2 楼 lqixv 2009-05-15 11:19
我本来也想用,但也是居于以上的原因没有用。
还有就是国内的框架常常搞个半年一年后就不再搞了,这也是一个非常令人担心的问题
1 楼 34982442 2009-05-14 15:08
速度没有free快,性能没有velocity好,哎

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 详解Vue-Router源码分析路由实现原理

    深入Vue-Router源码分析路由实现原理 使用Vue开发SPA应用,离不开vue-router,那么vue和vue-router是如何协作运行的呢,下面从使用的角度,大白话帮大家一步步梳理下vue-router的整个实现流程。 到发文时使用的版本是: – vue (v2.5.0) – vue-router (v3.0.1) 一、vue-router 源码结构 github 地址:https://github.com/vuejs/vue-router components下是两个组件 和 history是路由方式的封装,提供三种方

  • 超详细的vue-router原理

    vueRouter是前端路由,在无需刷新页面的情况下更新视图。 两种模式:一种是Hash模式,一种是History模式。分别就是在HTML5History,HashHistory两个类中实现的。 一、vue-router组成 vue-router组件有三个部分 1.link:即v-link 2.view:元素指令,即 3.router:核心部分 二、vue-router简单的一个流程 1.url 变化 2.history监听(onChange事件):window.addEventListener(‘hash

  • vue-Router实现原理

    一、前端路由概念 通过改变 URL,在不重新请求页面的情况下,更新页面视图。 二、vue-Router两种模式 更新视图但不重新请求页面,是前端路由原理的核心之一,目前在浏览器环境中这一功能的实现主要有2种方式: Hash — 默认值,利用 URL 中的hash("#") 、 history-- 利用URL中的路径(/home) 如何设置路由模式 const router=new VueRouter({ mode:'history', routes:[...] }) m

  • 请描述一下Vue Router的原理和工作流程

    在上述代码中,`v-for`指令将遍历`avatars`数组中的每一项(一个对象和一个索引),并为每一项创建一个新的li元素。如果你想在特定的组件中使用过滤器,你需要在该组件的`filters`选项中注册它。如果你想在一个子组件中使用过滤器,你可以将它传递给子组件并在子组件中使用它。5. **组件渲染**:找到对应的路由对象后,Vue Router会根据该对象的配置,渲染对应的组件。在上面的代码中,我们定义了一个名为`prop-name`的属性,并将其绑定到子组件`ChildComponent`上。

  • Vue-Router 原理实现

    一.Vue-Router基本使用 在main.js中会将router对象注入到vue实例中,注入vue实例后会创建两个属性$router和$router。第一个是路由规则,第二个为路由实例 在路由规则中可以获取路由信息,在路由实例中可以获得路由方法比如push、go、replace等。此外若在开发插件过程中想要获取路由规则可以通过路由实例中的currentRoute获取路由的规则。 1、动态路由 动态路由有两种传参方式一种是直接通过$route.params.id获取到路由中的id占位,另一种...

  • Vue-Router与原理

    Vue Router的原理是基于浏览器的History API,即HTML5中新增的History接口,通过这个API可以在浏览器中动态修改URL,并在不刷新页面的情况下实现页面的切换。Vue Router基于History API提供了一个组件化的路由管理解决方案,可以方便地进行路由的配置和管理。

  • vue-router原理解析,讲的明明白白

    核心竞争力,怎么才能提高呢?成年人想要改变生活,逆转状态?那就开始学习吧~万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。为了帮助大家更好更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。

  • vue-router实现原理

    转自:https://segmentfault.com/a/1190000018584560 随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、加博主微信(guyun297890152)可以进入微信技术交流群、QQ技术交流群(183198395)。 近期面试,遇到关于vue-router实现原理的问题,在查阅了相关资料后,根据自己理解,来记录...

  • vue-router 原理

    用了 HTML5 的实现,单页路由的 url 就不会多出一个#,变得更加美观。hash 是 URL 中 hash (#) 及后面的那部分,常用作锚点在页面内进行导航,最重要的是改变 URL 中的 hash 部分不会引起页面刷新。vue-router 是 Vue.js 官方的路由插件,它和 vue.js 是深度集成的,适合用于构建单页面应用。在 vue-router 单页面应用中,则是路径之间的切换,也就是组件的切换。系,这种映射是单向的,即 URL 变化引起 UI 更新(无需刷新页面)。

  • 【web前端】Vue-router原理、$router和$route的属性方法、路由模式、路由导航守卫、导航解析过程、路由懒加载、SPA单页应用优缺点

    Vue-router原理、$router和$route的属性方法、路由模式、路由导航守卫、导航解析过程、路由懒加载、SPA单页应用优缺点

  • 谈谈vue-router的实现原理

    前言 相信不少伙伴都听过SPA(单页面应用),SPA指的是在一个应用中只有一个主的index.html页面,区别于多页面应用(多个index.html页面)。SPA的优点如下: 1、交互体验良好 单页应用的内容的改变不需要重新加载整个页面,获取数据也是通过Ajax异步获取,没有页面之间的切换,就不会出现“白屏现象”,也不会出现假死并有“闪烁”现象,页面显示流畅,用户的交互体验得到了提升和改善。 2、前后端分离 良好的前后端分离机制,后段无需负责模板渲染、输出页面工作,后端API通用化,即同一套后端程序代码

  • 弄懂vue-router的实现原理

    官网文档,…, 下面这种路由表的写法比较优雅,我把路由单独写在一个文件routes.js . router/routes.js 文件代码 const routes = [ { path: '/', redirect: '/recommend' }, { path: '/recommend', component: () => import('../...

  • Vue-Router的基本原理

    Vue-Router的使用原理,路由实现的两种模式以及优缺点

  • 浅析vue-router实现原理及两种模式

    主要介绍了vue-router实现原理及两种模式分析,给大家介绍了vue-router hash模式与history模式不同模式下处理逻辑,需要的朋友可以参考下

  • Vuejs学习之-----vue-router实现路由功能

    虽然现在是vue2.x版本的,但是我想从最基础的vue1.x开始学起,后续会用2.0的版本Vue-router1.0的版本github地址,不过都是英文的,正好可以锻炼阅读英文文档的能力 https://github.com/vuejs/vue-router/tree/1.0/docs/en 用 Vue.js + vue-router 创建单页应用,是非常简单的。使用 Vue.js ,我

  • vue-router的使用及实现原理

    转载:https://segmentfault.com/a/1190000014822765 前端路由是直接找到与地址匹配的一个组件或对象并将其渲染出来。改变浏览器地址而不向服务器发出请求 有两种方式: 1. 在地址中加入#以欺骗浏览器,地址的改变是由于正在进行页内导航 2. 使用H5的window.history功能,使用URL的Hash来模拟一个完整的URL。 两种模...

  • vue-router原理分析与实践

    今天大师兄跟大家简单聊聊Router的实现原理,以及我们如何去实现这样一个插件。 Vue Router 是Vue.js官方的路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌。 关于Vue Router的使用就不做过多介绍了,大家可以前往Vue Router官网去学习哦~ vue-router插件的基本使用 import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) const router = ne.

  • vue-router的原理

    我的另一篇博客,介绍了路由的使用https://blog.csdn.net/xiasohuai/article/details/80693320 更新视图但不重新请求页面,是前端路由原理的核心之一,目前在浏览器环境中这一功能的实现主要有2种方式,Hash模式和History模式: (1)利用URL中的hash("#"); (2)利用History interface在HTML5中新增的方法;...

Global site tag (gtag.js) - Google Analytics