关闭

一个java框架的开发日记(2)

标签: 框架javastringexceptionvelocityclass
379人阅读 评论(0) 收藏 举报
分类:

今天1.0版本已经有一个雏形了,以后会加入更多的东西。

先介绍下我的思路吧。

第一步、是velocity引擎,我使用一个取路径的类来寻找已经设计好的模版文档,将其中的模版标签替换,将其作为响应返回给浏览器。

代码:

 

第二步、修改web.xml文件将其所有的sevlet路径都指向我自己定义的类。

第三步。建立自己的类VatanaSevlet类。类中调用VatanaController的call()作为控制器指定模型并取得一个字符串作为视图索引。

调用VelocityEnginee的show()方法呈现视图给浏览器。

第四步、控制器VatanaController。

可以看到该类并没有完成。其中URL分析部分还需完善。

其主要作用是分析url,变换成相应的动作指令,使用java的反射机制进行调用。这个思路来源于rails,在这里我想使用约定而不是xml配置文件。把一些东西限制定死了,可以集中人的注意力在处理逻辑上。

假如一个url是:http://localhost/vatana/action/method?param1=1&param2=2

那么作为控制器会自动寻找类Action的method方法,如果不写方法,默认为excute,username和password参数及其值,可以在params中找到。默认action是必须写的,如果不写,按照主页处理,将会定位到index页面,在这里我用的velocity模版的后缀是html.这样可以直接在浏览器中预览,方便设计。

第五步、一个模版类需要继承BaseModel类。然后创建一个自己的方法(或者重写excute方法)即可。

这样在继承类里就只需要重写excute类即可。在此,我有一点犹豫,excute方法是否应定义成抽象函数,

一个具体的模型类

注意上个类中的注册对象到模版,velocity是支持对自定义对象进行操作的。上面这个模型对应的视图模版可以这样写

 

最终呈现的结果会是

 

     你好 vatana,你的ID是1!

 

框架的大致流程就是这样子,使用vatana开发应用,只需要创建一个模版页,一个model类,就足够了。

当然这个框架还有很多需要扩充的地方,我认为url方面还有更多东西来做,url的创建,链接的管理,我打算用一个类管理超链接和form标签,这个类将会通过velocity模版展现在页面上,不需要开发人员每次都要遍历所有的模版去找要修改的内容。

这是第一版的代码,我在这里把model的包路径给定死了com.vatana.model,这是我自己用的一个路径,以后我打算做一个让此路径可以定制。但是每个项目只能做一次定制,我在这里把给模型类同名的package,这样不会导致所有的类型都集中在一个package下显的混乱。

 

为了方便开发,我打算写一段自动生成文件的程序,只需要一点点的配置,就可以得到我想要的一切--程序,视图模版。不需修改就能使用。

 

同时在这里做一下展望吧,在将来框架会更完善,集成jQuery,hibernate等更多的元素让每一个java程序员能够更敏捷开发web程序,

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:18935次
    • 积分:467
    • 等级:
    • 排名:千里之外
    • 原创:28篇
    • 转载:0篇
    • 译文:1篇
    • 评论:5条
    最新评论