WEB开发网
开发学院WEB开发Jsp Turbine Development Kit HowTo 中文 阅读

Turbine Development Kit HowTo 中文

 2008-01-05 08:42:27 来源:WEB开发网   
核心提示:翻译:Brickhan 邮件:brickhan2003@yahoo.com.cn网站:http://www.javapub.com简介Turbine 开发包可以让我们迅速使用Turbine和它的各种部件来开发和评测这个开发包. 它几乎包含了进行Turbine开发的所有东西. 安装是你开发的开始. 这个指南的大部分内容是

翻译:Brickhan
邮件:brickhan2003@yahoo.com.cn
网站:http://www.javapub.com

简介
Turbine 开发包可以让我们迅速使用Turbine和它的各种部件来开发和评测这个开发包. 它几乎包含了进行Turbine开发的所有东西. 安装是你开发的开始.
这个指南的大部分内容是将网站上各处的信息进行了汇总. 它并不能代替阅读Turbine的有关信息和资料. 只是为了让新用户迅速把握Turbine的基本工作原理知识并运行 TDK.通常,在你到邮件列表提问前,请迅速浏览了整个网站信息,建议在安装前,通读本指南.

使用 TDK的前提条件

在使用 TDK之前, 你需要安装支持Java 1.2或以上版本的JSDK. 可以去Sun的站点下载.
需要安装 Ant ,假如没有安装,可以从 这儿找到如何安装.
为使用邮件的功能,需要下载activation.jar 。
为了使用 TDK, 也需要一个符合JDBC标准的数据库. 当前 TDK 已经带有Hypersonic, InstantDB, MySQL, Postgres 和 SAPDB数据库的驱动. 其他驱动需要到厂商的站点下载:
? Oracle JDBC 驱动 .
? Sybase JDBC 驱动 .
完全支持的平台/数据库
并不是每个平台/数据库已经被完全测试过,所以你的特有的安装可能一些实在的工作,下面的结合情况已经在TDK的各个版本测试过:
平台 数据库 测试者
----------------------------------------
linux MySQL Jason van Zyl

Linux PostgreSQL Jason van Zyl

Window2K MySQL Martin Poeschl

NT (sp6) MySQL Randall G. Alley
----------------------------------------

假如上表没有列出的情况, 并不意味着 TDK 不能运行. 只是在新的TDK发布时,没有进行常规测试. 假如你让一种上面没有提到的组合能够运行并经过了测试,请给我们发送信息,我们将把你补充到上面的列表中.
下载安装 TDK
首先,得到 TDK的发布包. 可以从 Turbine release repository 下载. 在这个目录你可以找到最新的版本, 并下载 tdk-2.1.tar.gz, 或 tdk-2.1.zip 文件.
解包到你选择的目录:
tar -xvzf tdk-2.1.tar.gz
到此,安装完成.

开发第一个Turbine 应用

为了长把握Turbine,你需要开发第一个你自己的范例应用. 可以按照下面的方式进行:
1. 打开位于TDK根目录的 "build.PRoperties" 文件. 改变属性"target.package" 为你的java文件的包名,属性 "target.Directory" 为你的class文件的目录名. 这两个值是一个相互映射. 最后, 改变属性 "tdk.project" 为你创建的应用名称. 通常,这是和你的target.package 末尾的标示一致.
2. 设置系统的JAVA_HOME 环境变量. 在 *nix/BSD 使用 Bash shell, 可以输入下面的命令:
---------------------------------
eXPort ANT_HOME="/PATH/TO/ANT/"
export JAVA_HOME="/PATH/TO/JDK/"
export TDK_HOME="/PATH/TO/TDK/"
---------------------------------

3. 在TDK的根目录运行 Ant. 范例应用将缺省使用newapp名称被生成. 假如你想使用你自己的名字,需要改变build.properties 文件的turbine.app.name 属性.
-------------------------------------------
tdk.home = /PATH/TO/TDK
tdk.turbineVersion = 2
tdk.project = newapp
target.package = org.mycompany.newapp
target.directory = org/mycompany/newapp
-------------------------------------------
ant
这将生成运行Turbine应用的必需文件.
4. 一旦初始部分文件建立后, 你需要到"/TDKROOT/webapps/APPNAME/WEB-INF/build" 目录来编辑你的"build.properties" 文件. 这个文件是用来指定某些属性如: 数据库类型和你的数据库连结信息. 这些信息是Turbine用来建立表和class用来访问数据库的. 假如你使用的数据库,TDK没有提供驱动,此时你也应该复制JDBC驱动到 (改名 .zip 文件为 .jar 文件) "webapps/APPNAME/WEB-INF/lib" 目录,. 这些文件在下一步的创建数据库的表是很重要的.
# -------------------------------------------------------------------
# D A T A B A S E S E T T I N G S
# -------------------------------------------------------------------

database = mysql
databaseDriver = org.gjt.mm.mysql.Driver
databaseUrl = jdbc:mysql://localhost/newapp
databaseUser = dbUser
databasePassWord = dbPassword
databaseHost = localhost

torque.database.name = newapp
torque.database.manualCreation = false
torque.database.driver = org.gjt.mm.mysql.Driver
torque.database.createUrl = jdbc:mysql://localhost/newapp
torque.database.buildUrl = jdbc:mysql://localhost/newapp
torque.database.user = dbUser
torque.database.password = dbPassword
-----------------------------------------------------

5. 转到 "/TDKROOT/webapps/APPNAME/WEB-INF/build" 目录并运行 "ant init" 命令,这个命令一定要在使用TDK之前运行. 它建立数据库的表和OM类.
注重

对于 Oracle 和 Sybase 用户,经常是数据库已经建好: 假如是这种情况,你需要设置"build.properties"文件的属性database.manual.creation ,这样可以强制忽略′create-database′ 目标.
6. 第一个 Turbine 应用已经完成! 返回到TDK的根目录,假如你想看到控制台输出,输入 "./bin/catalina.sh run" ,或者可以输入 "./bin/catalina.sh start" 让Tomcat在后台运行.
注重

假如你想要类自动重新加载工作, 那么你需要为生成的每个应用作非凡的配置. 这个功能在Catalina b5似乎不能正常工作. 希望在 2.1 release中得到解决. 假如你使用缺省安装, 类重新加载就会安装 i.e. 你的 APPNAME 是 ′newapp′. 假如, 你的 APPNAME 是 ′rupert′ 那么你需要在 conf/server.xml f文件中增加下面的内容:
<context path="/rupert" docBase="rupert" reloadable="true"/>
在 conf/server.xml 文件中搜索 ′TDK SITE′ ,并做出以上的调整来让reload工作. 你可以看到如何设置缺省 ′newapp′ 的reload,你可以把它当成范例来参考.

访问你的 Turbine 应用

现在你的Turbine应用已经建立好,并开始运行,可以用浏览器访问http://SERVERNAME:8080/APPNAME/servlet/APPNAME 其中 SERVERNAME 是服务器名,APPNAME 是你的应用名.
初始的登录窗口将显示出来,你可以使用用户名 ′turbine′ 和密码 ′turbine′ 来登录。登陆后可以看到 "Turbine Data Manager" 的布局. 你可以对数据库进行 insert/delete/edit 或者使用 Flux来长创建和治理用户, 这是Turbine内建的用户治理系统,这就是Turbine应用范例.

编辑范例应用

现在来观察这个应用范例. 你所看到的 view 包含了4个不同的部分 (top, bottom, menu 和 index) 这些是由 Velocity 动态的组装在一起. 为了弄清它是如何工作的, 你可以编辑"webapps/APPNAME/templates/app/layouts/Default.vm" 这个文件,这个文件定义了缺省的显示布局. 正如你所看到的,写成 Html 片断可以整合到你的最终页面中. 编辑这个页面将影响你整个应用的页面布局.
明白了页面是如何组织的了, 转到 "webapps/APPNAME/templates/app/navigations" 目录来看那些与上面布局模板有关的文件. 编辑 "DefaultBottom.vm" 文件, 并将你的改动保存, 重新加载页面. 然后,你就可以看到你对底部布局所作的改变. 这个改动也出现在其他页面上,你可以浏览不同的页面来证实这一点.
现在转到 "webapps/APPNAME/templates/app/screens" 目录,这个目录下的文件是用来替换原始布局中的"$screen_placeholder" 变量的. 打开文件 "Index.vm" 你将发现定义了一个 "$headings" 的变量包含了index页面的头部的字符串,一个变量 "$entries" 用来显示页面的动态数据. 这个变量来自于同.vm页面相关的java类文件, 如同在下段所解释的. Index.vm 页面也包含了许多函数,是以 #开头的, 如 "#entryCell(...)" ,这些函数在运行时刻被 HTML 段所代替, 象 "webapps/APPNAME/templates/app/GlobalMacros.vm" 文件中所定义的. 观察这个文件可以了解每个方法是做什么的. 这个文件也可以编辑来增加你自己的 velocity 宏.
为察看与Index.vm关联的 Java 文件, 转到 "webapps/APPNAME/WEB-INF/src/java/PACKAGE/modules/screens" 目录,浏览一下目录,可以发现每个有动态数据的页在此目录下有一个相关的类文件. 打开 "Index.java" 文件察看当中的内容. 可以看到, "doBuildTemplate" 方法创建了一个变量为 "entries" 并通过方法"getEntries"从数据库中获取相关数据。 在 Index.vm 页上, 有相应的entries对应于范例数据库. "context.put("entries", getEntries())" 方法存放数据,相关的处理放置在会话的context中,所以可以直接从 Index.vm 页访问. 你也可以编辑这个文件来改变给定页的行为. 更多关于 Velocity 的信息可以参看 这里.
Action 事件
现在在浏览器中返回你的应用范例并插入一条记录到表中. 察看你浏览器的URL. 结尾应该包含 "/action/SQL" ,这就是 Turbine 使用的方法来往数据库中插入数据. 相应的类文件可以在"webapps/APPNAME/WEB-INF/src/java/PACKAGE/modules/actions" 中找到,名称为 SQL.java. 实际上, 当你插数据时, Turbine 调用这个SQL 类的 "doInsert" 方法来插入数据. 关于action如何工作的具体解释可以察看这儿.

改变你的 schema

弄清楚了 actions, 我们应该改变数据库来做一些更有用的事情. 那么, 转到"webapps/APPNAME/WEB-INF/conf" 目录并打开 "APPNAME-schema.xml"文件. 这个文件包含了XML格式数据库的schema . 这个文件应该是自解析的. 在其中你可以建立新的表,也可在表中增加新的字段. 往示例表中增加更多的列并保存. 现在转到 "webapps/APPNAME/WEB-INF/build"目录,再次运行 "ant init" 命令. (警告: 假如进行这项操作,将会丢失现存表中的所有数据, 假如表中有你想要保留的数据,那就不要运行.) 这将更新现存的数据库和当中的对象,建立新的字段并建立.xml文件中定义的表等, 以及相应的java类文件. 这些类文件,Turbine 用来访问数据库,将生成在"webapps/APPNAME/WEB-INF/src/java/PACKAGE/om" 目录,察看他们来理解Turbine的对象模型部分如何操作. 对应于你在schema中定义的每个表有相应的类名. 在使用Turbine时这些类将用来操作数据库.
schema 更新后我们需要返回去编辑操作数据库的 .vm 文件files. 返回上面描述的 "Index.vm" 文件 并改变 headings 来与新的schema相匹配. 假如您已经新建了另一张表来在Index中调用, 或改变了原始的表名称, 编辑你的 "Index.java" 文件来从数据库中获得数据,代替缺省的调用OM对象的方法.

结论

现在已经建立并运行了你的第一个Turbine应用,并且把握了如何编辑TDK的java文件和.vm文件来定制一个非凡的应用. 为编译你改动的或新建的java文件, 转移到 "webapps/APPNAME/WEB-INF/build" 目录并运行 "ant compile". 这将重新编译工程中所有改动的java文件. 你也可以加入 Turbine 用户邮件列表。关于加入的方法可以察看 Project Info 页面.

Deployment

TDK 使用 Tomcat 4.0 作为 Servlet 容器, 但你可以将你的 webapps 打包并运行在兼容的 Servlet container中. 仅需要改变的是在web.xml中的对于 Servlet 2.3 DTDs 的引用. 假如你改变这些引用, 那么你用TDK开发的webapps 将是完全可移植的. 我们使用Tomcat 4.0 是因为它是早期的规范.
假如TDK有更多的发布特点,我们将增加更多的注解,当前的做法是将你的应用打成一个WAR文件.

Tags:Turbine Development Kit

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接