Cwin1.0用户手册第一部分:介绍与快速起步
Cwin 是什么?
<!---->1. <!---->使用简单:表与字段定义在一个 XML 文件中。通过 ID 访问。
<!---->2. <!---->功能全面:对 HTML 控件全面的支持: Cwin 支持大部分的 HTML 控件配置与在线编辑器 (fckeditor) 的配置、文件上传。
<!---->3. <!---->自动的输入检查。验证条件可以比较灵活地配置。即使您不设置任何的条件 Cwin 也会根据数据库的字段属性进行输入检查。
<!---->4. <!---->灵活性: Cwin 可以使用 URL 对每一个页面单独进行引用。 Cwin 支持动态 URL 的配置。这样 Cwin 中配置的 Window 也可以通过 URL 得以嵌入在其实比较复杂的功能中。
<!---->5. <!---->贴心小特点:
<!---->A.????? <!---->对于 Value-Desc 方式的值。比如用户表的用户类型字段。 Cwin 在表格展示时自动展示为 Desc 而不是得对照数据字典才能的 Value 。
<!---->B.????? <!---->Window 可以 动态接收参数作为 window 的条件与默认值。比如我们现在有一个 Window : user 。现在我需要有一个功能,按用户类型编辑用户。就可以加入参数 类似 userType=value 。即可。
<!---->C.???? <!---->Cwin 支持系统变量的插入。默认的系统变量只有一个: _CWIN_SYS_TIME (系统时间)。我们在 Window user 中可以使用到他。因为 user 的 CreateTime 需要记录系统时间。 modifyTime 也需要记录修改时间。如果用户有其它的系统变量,比如操作人。那么用户将需要扩展 Cwin 的一个类。覆盖某个方法即可。
<!---->D.???? <!---->Cwin 多种的列输出配置, hidden (面对长字段可以隐藏不在表格中展示,因为表格装不下那么长), pop (面对长字段,可以让经以 POP 方式跳出来), link :可以通过此列链接到其它的功能,这个功能非常地实用。 None :在表格中不显示此列,比如主键列。
<!---->E.????? <!---->Cwin 统一地管理各种与此下拉列表与 HTML 控件。从此不必在各个页面之间 COPY 下拉列表了。也不必 COPY 各个字段的验证代码了。
<!---->F.????? <!---->如果您使用 Cwin 。那么 Cwin 的配置文件可以作为一份不错的数据库文档。因为修改的每一个字段都必须修改配置文件才能得到体现。这样,这份文档总是最新的!
<!---->6. <!---->较小的对第三方组件的依赖性,可以作为 WEB 开发的开发插件来使用。
Cwin 的依赖包:
Jabsorb :如果需要使用配置引用控件功能。
Commons-upload :如果需要使用文件上传功能)。
Fckeditor : ( 如果需要使用在线编辑器 ) 。
Slf4j :( Fckeditor 的日志工具,也是 Cwin 的日志工具)
Cwin 包含的组件<!---->1.????? <!---->DbAss :数据库助手工具类包。支持 JDK1.5 以上。
DbAss 是一个强大的使用泛型的 JDBC 工具包。包含了通用的分页查询方案与基于注释的事务管理方案。一个通用的 DAO 提供了许多不错的数据库操作方法。对于一般应用而言,这个通用 DAO 已经够用了。目前版本支持的数据库有: Oracle, MSSQL,MySql,PostgreSql 。
详情请查看本手册的 DBASS 部分。
<!---->2.????? <!---->JavaScript 验证与表单验证 API 。特点是实用、体积小、不依赖于任何第三方 API 。
<!---->3.????? <!---->JavaScript 日期选择器。特点是实用、体积小、不依赖于任何第三方 API 。
Cwin 的不足之处<!---->1. <!---->将 cwin 目录 Copy 到您的 WEB Content 目录下,如果很巧。您的 WEB 工程中已经有了 Cwin 文件夹。那么为了防止冲突,请您为 Cwin 换个名字。比如 Corewin 。请记住新名字,因为新名字将要在配置中进行指定。
<!---->2. <!---->将 lib 下的 cwin_all.jar 与 Depend_lib 下的依赖包 Copy 到您的 Web-INF 目录下。这样就完成了集成的第一步。接下来是配置。
配置 web.xml CwinServlet 与相关 Servlet 的配置。<!-- 初始 Servlet CwinServlet --><servlet><servlet-name>Cwin</servlet-name><servlet-class>cn.antia.cwin.CwinServlet</servlet-class><init-param><param-name>web_directory</param-name><param-value>cwin</param-value></init-param> <init-param> <param-name>mapping_url</param-name><param-value>cwin</param-value> </init-param> <load-on-startup>1</load-on-startup></servlet> <!-- JSON_RPC Servlet --> <servlet><servlet-name>JSONRPC</servlet-name><servlet-class>org.jabsorb.JSONRPCServlet</servlet-class><init-param><param-name>gzip_threshold</param-name><param-value>200</param-value></init-param></servlet> <!-- FCKEditor ConnectorServlet --><servlet><servlet-name>Connector</servlet-name><servlet-class>net.fckeditor.connector.ConnectorServlet</servlet-class><load-on-startup>1</load-on-startup></servlet> <servlet-mapping><servlet-name>JSONRPC</servlet-name><url-pattern>/JSON-RPC</url-pattern></servlet-mapping> <servlet-mapping><servlet-name>Cwin</servlet-name><url-pattern>/cwin</url-pattern></servlet-mapping><servlet-mapping><servlet-name>Connector</servlet-name><url-pattern>/cwin/fckeditor/editor/filemanager/connectors/*</url-pattern></servlet-mapping>
?
?????? 您已经将 cwin 目录重命名,那么您需要在 CwinServlet 的配置上指定您的目录。否则这一段配置不需要修改。
?????? Servlet 的映射将处理 /cwin 的请求。
?????? 如果您需要 Fckeditor 的支持,请保留 FCKEditor ConnectorServlet 的配置。
?????? 如果您需要 Jabsorb 的支持,动态引入定义在字段中的属性,请保留 JSONRPC 的配置。
?????? 将以上配置 Copy 到 web.xml 中即可。
?????? 请注意:如果您将 cwin 重新命名,请将修改 JSONRPC Servlet 的 URL 映射 (/cwin/fckeditor/editor/filemanager/connectors/*) 的 cwin 改为新名。
?????? 如果您重新指定了 CwinServlet 的映射 URL ,请同时将 CwinServlet 的参数 mapping_url 改为新名。
数据源配置在 cwin.jar 中找到一个 dbass.properties 的文件。因为 Cwin 就是由它来定义数据源的。实际上这是属于 DBASS 组件的配置。不过这对于您来说都没什么关系。工程跑起来了就大功造成了。配置文件有以下的选项与配置说明。
dbtype: 数据库类型,支持 mysql,oracle,mssql,postgre
dataSource: 数据源,可以有两种配置方式可以选择。一种是使用 JNDI 配置的数据源,另一种是使用 cwin 提供的数据源的属性进行配置:
dataSource?? :????? JNDI 中的数据源,如果配置了此项,以下关于数据源的配置将无效。
driver???? ?????? :????? JDBC 驱动
user?????? ?????? :????? 用户
password????? :????? 密码
url?? ?????? :????? URL ,数据库连接串
maxIdle? :????? 最大空闲连接
maxWait :????? 最大等等时间
maxActive???? :????? 最大活动的连接
?
相信对于 Java 的 Web 开发人员来说,这个配置文件实在太熟悉了,我也就不多说。配置完以后将其放回 jar 包就算配置完成了。
体验 Cwin赶紧启动您的工程吧。好了,启动成功了吗?
如果您的数据库中已经有表比如。 User 。
如果您的 CwinServlet 映射 URl 与 Tomcat 或是 Resin 端口没有过修改,那么您可以使用类似下面的 URL 来查看您的 User 表。
http://localhost:8080/cwin/cwin?_CWIN_ID=user
回车试试,看到了什么?是不是眼前一亮呢?好了,恭喜您,走上了 Cwin 的第一步。如果您仅仅是在看文档,那么我来告诉您吧。浏览器上展示了一个表数据浏览窗口。
<!----><!----><!---->
?
现在,为了能使我们共同来了解 Cwin ,请您用下面的 SQL ,来创建一张新的表 user_demo 。开始 Cwin 之旅。
注意:本文档的示例数据库为 mysql5.0
CREATE TABLE `user_demo` (
? `id` int(11) NOT NULL auto_increment,
? `login_name` varchar(20) NOT NULL,
? `email` varchar(80) NOT NULL,
? `password` varchar(255) NOT NULL,
? `type` varchar(255) NOT NULL default '1',
? `create_time` datetime default NULL,
? `intro` varchar(255) default NULL,
? PRIMARY KEY? (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
?
现在,将我们的地址栏换成
http://localhost:8080/cwin/cwin?_CWIN_ID=user_demo
好了,如果您已经看到效果了,我们来看看 cwin 目录下的 config 文件夹,找到 table.xml 。看到了吗,我们的页面就是在这里定义的。
下一章,我们将进入 Cwin 的配置第一部分,讲到查询与排序、输入与输出、主键生成等等的配置:深入 Table 的配置。
哦,对了。请您看看 cwin 目录下的 demo 文件夹。本手册的 Sql 与 JSP 都在那里面了。