今天放上自己使用 MyEclipse 开发索迪杯 50 强项目的过程,也算做 Java 中使用开源 SSH 框架的教程吧,整个项目因为 CG 对 Spring 目前并不太熟悉,所以取消了 Spring 部分,不过 CG 会简单介绍一下在哪些部分可以使用 Spring,CG 自己也是初学者,所以如果哪些部分有不对或者有问题的地方,欢迎高手不吝指正,在此谢过。
首先了解一下基本环境 Java: J2EE 5 SDK SUN 提供的一大包 Java 工具; IDE: MyEclipse 7 大名鼎鼎的 java IDE 工具; web: tomcat 6 JSP 的服务端工具; DB: MySql5 这个大家应该知道,免费的数据库,大家需要下载相应的 JDBC 驱动。 使用框架:Struts1.2 + hibernate3
这些工具除了 Myeclipse 是收费软件之外都是免费,大家可以都可以免费到网络上 下载,Myeclipse 相信大家 GG 一下应该可以找到可以使用的方法,下载完成后安装 ,按照需要配置好就可以开始,如果大家对环境的配置还不太明白的话,请关注我 的下一篇日志吧。
好正式开始,首先打开 Myeclipse 环境,然后新建一个 Web Project,点击 File->New -Web Project, 自己输入名称,然后选择响应的 J2EE 版本,我建议使用 J2EE5,可以 直接使用 JSTL。
下一步,启用项目的 Hibernate 和 Struts capability, 选择刚刚新建的项目,单击 Eclipse 标题的 MyEclipse 的 Project Capabilities -> Add Hibernate Capability
首先选择 Hibernate 的库,我选择的是 Hibernate3 因为 3 相对来说是比较稳定的一个 版本然后选择 Hibernate 的库放的位置,如果大家是直接在本机上调试,可以放在 build path,如果要提交或者转移发布,建议选择第二选项拷贝到 WEB-INF 下的 lib 下去
接着,就是选择 Hibernate 的配置文件的位置,一般是默认,直接下一步
然后,选择数据库的连接配置,大家如果已经配置了数据连接信息,直接选择就好, CG 这里使用的自己配置的 MySql
下一步,选择 Hibernate 的会话工厂的位置,大家可以放在源代码下 hibernate 下的 包中,方便重构,可以选择已有或者新建,最后 Finish,Hibernate 的支持配置完成
接着是配置 struts 支持,步骤跟配置 Hibernate 相同,Project Capabilities -> Add Struts Capability,再选择相应的 struts 版本,我选择的是 1.2,然后配置一 下下面的包路径,然后 Finish, 完成,如果还需要 Spring 支持的话,步骤类似,这里 略过。
配置 Struts + Hibernate 完成,接着就改轮到 Hibernate 的数据对象了,Myeclipse 为我们提供了比较方便的方法了,首先打开 DB browser,然后打开你配置好的数据 库连接,如果没有的话,大家可以先的新建一个,填一下驱动和链接字符串就好。 DB browser 可以在 Window - > show View 下面找到,如果没有,可以再到 others 下面找。选中我们需要生成表
然后右击 -> 选择 Hibernate Reverse Engineering, 这个选项可以看大下面的向导
配置一下自己的项目 SRC 路径和包名,选中下面的创建 DAO 扥选项,只要你的数据表 的约束没有问题,直接 finish 就好了,然后会在 SRC 中生成相应的 DAO 文件,如图
下一步就是 Struts 的详细配置了,实现表示层的功能了,CG 的 MyEclipse 自动集成了 FreeMaker 插件,所以可以直接拿来设计。找到 Web-Inf 下的 Struts-config.XML 文 件打开,然后进入设计界面,大家可以根据自己的需要创建 Action,FormBean,Jsp 等,下面是 CG 的最终效果图。
一共四个 JSP 页面,其中 editor 是一个带 Form 的 JSP 一个 Action,GlobalAction 类完成全部的动作处理,一个全局转向,用于错误处理
接着大家就是完成响应前端的设计了,设计一下自己的页面,本次教程的源代码大 家可以在 CG 的日志中找到,大家拿去参考,这里不详细讲解。
下一步,创建逻辑层的的 JavaBean 对象和相关表的 Service 类,用于对下层的数据表 DAO 对象进行数据读取,修改等操作,并且把这些操作组合,形成完整的表格服务类 用于上一层的 Action 的调用,使得 Action 再与 DAO 分离,这里 CG 除了对单个表单独创 建了服务类之外还有一个跨表查询的类 SpanTableService 用于多表之间的查询,建 议大家接口加实现类方式,因为使用多接口继承方式可以方便的实现对多个表的实 现类的调用,而不需要单独实现,具体文件列表现在如下
下面的主要的实现类 Student 的部分代码截图,其他的表基本类似
好了,业务层基本已经写好了,这里请大家注意,为了使得 DAO 对象的创建更加方便 CG 创建了一个 DAOProvider 静态类来是提供各个表的 DAO 对象,我把他们放在 util 包 当中,另外为了用于表示层 Action 中提供 Service 对象,CG 又创建了一个 Service 的 提供类 ServiceProvider 类,大家如果使用 Spring 的话,可以考虑用 Spring 了托管 相应的对象,让 Spring 来自动生成相应的对象,因为这里没了 Spring,只能先用 Provider 来实现了,因为是简单的 Demo,所以使用直接返回对象即可,大家可以考 虑用 XML 配置 DAO 列表,这里不详述了具体代码截图如下
好了,轮到最核心的类了,GlobalAction, 这是处理用户请求和处理的类,这里 CG 使用的是 Dispache 转向类,直接由请求中的参数来处理不同的动作,大家直接对不 同的动作请求进行相应的处理既可,处理完成后选择响应的转向,下面是返回学生 列表代码的截图
好了,业务层基本完成,下面回到表示层,这里要处理的就是相关的动态生成的数据 了,如果是用 Struts 的话,就是 Struts 的标签的使用了,放个代码截图,这是遍历 所有 stu Bean 中相关属性并且输出。
如果这些都做完的话,大家也先别着急调试,还有一些东西,配置一个 EncoderFilter 学过 JSP 的朋友的话肯定用过,这里还是要讲一下,CG 因为搞错了配置,浪费了不少 时间,encoderFillter 类源代码可以在 Util 包下面找到,下面是代码截图,大家看 好是 extends HttpServlet implements Filter 哦,不要搞错,CG 就错在这里
然后在 WEB-INF 的 web.xml 下面配置一下这个 Filter,截图如下
最后,如果大家使用 EL 表达式的话,告诉大家一个下技巧,可以直接配置 web.XML 代码如上图,就不需要每个页面 <%@ page isELIgnored="false" %> 了。
到这里,大家就可以进行相应的调试工作了,启动一下 tomcat,然后发布你的 Proj 吧。CG 的索迪任务也就完成了,在这里把开发过程分享给大家,如果大家有任何问 题的话,可以直接给我留言,源代码下载地址
http://www.lidaren.com/code/SodiDemo.zip
运行效果,大家可以参看 CG 最近的日志,欢迎大家评论,指正,CG 在此感谢。
李大仁博客原创,欢迎转载,转载请注明引用自李大仁博客