阅读更多
项目名称: 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与原理

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

  • vue-router实现原理

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

  • Vue-Router 原理实现

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

  • vue-router 原理

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

  • 谈谈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模式不同模式下处理逻辑,需要的朋友可以参考下

  • 理解vue实现原理,实现一个简单的Vue框架

    参考: 剖析Vue实现原理 - 如何实现双向绑定mvvm Vue.js源码(1):Hello World的背后 Vue.js官方工程本文所有代码可以在git上找到。       其实对JS我研究不是太深,用过很多次,但只是实现功能就算了。最近JS实在是太火,从前端到后端,应用越来越广泛,各种框架层出不穷,忍不住也想赶一下潮流。        Vue是近年出的一个前端构建数据驱动的web界面的

  • vue-router的原理?catch方法的实现原理

    问题网址:http://bbs.daxiangclass.com/?thread-29.htm 解决方案: 用户通过vue的router.push和router.replace来修改地址栏。同时监控地址栏。获取到对应组件,去配置信息里面寻找对应的页面显示 vue的两种模式 hash模式 这种 # ,也就是hash值的变化不会导致浏览器向发送请求,每次hash值的变化都会触发一个...

  • Vue-Router原理实现

    一、Vue Router 基础回顾 1、使用vuecli创建项目时选择上Router会自动安装vue-router插件并且生成vue-router的基础代码结构 router/index.js import Vue from 'vue' import VueRouter from 'vue-router' import Index from '../views/Index.vue' // 1. 注册路由插件 // 参数如果是函数Vue.use直接调用这个函数来注册组件 // 参数如果是对象Vue.use会

  • 深入Vue-Router源码分析路由实现原理

    深入Vue-Router源码分析路由实现原理使用Vue开发SPA应用,离不开vue-router,那么vue和vue-router是如何协作运行的呢,下面从使用的角度,大白话帮大家一步步梳理下vue-router的整个实现流程。

  • 浅析vue-router路由实现原理

    前言 通过B站视频和一些童鞋的文章结合GitHub源码阅读来理解路由的实现原理 看过前章vuex状态管理的分享之后,相信对路由这块也是非常感兴趣的,同样的模式,同样的方式,我们走进GitHub之vue-router 同样直接走进 src components:route-link 组件 和 router-view 组件 实现 history:关于浏览器相关,包含 hash模式 , basic...

  • Vue-Router实现原理

    如果对大佬有帮助,请给小弟一个赞哦。 简述 单页面的优缺点不在本文讲,只讲原理。实现单页面的功能有两种方式: 使用锚点,hashHistory 利用浏览器的browserHistory原理 hashHistory原理 添加hashchange监听 window.addEventListener( 'hashchange', function() { // hash改变时,进行页面更换 } ) 复制代码 改变hash window.location.hash = '

  • vue-router的实现原理以及使用方法讲解

    vue中的vue-router是通过hash和history两种模式实现前端跳转路由,更新视图但不重新请求页面”是前端路由原理的核心之一,实现主要有两种方式 hash---- 利用URL中的hash(“#”) 利用Historyinterface在 HTML5中新增的方法 实现方式首先在router/index.js中注册路由 Vue.use(Router) 这里把路由单独写在一个routes.js中并导出,注意别忘了导出 export default routes ...

Global site tag (gtag.js) - Google Analytics