Struts2SpringHibernate整合ExtJS开发FilterTreecomboboxTreecheckNodeTree技术文档.docx
- 文档编号:30273277
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:42
- 大小:669.05KB
Struts2SpringHibernate整合ExtJS开发FilterTreecomboboxTreecheckNodeTree技术文档.docx
《Struts2SpringHibernate整合ExtJS开发FilterTreecomboboxTreecheckNodeTree技术文档.docx》由会员分享,可在线阅读,更多相关《Struts2SpringHibernate整合ExtJS开发FilterTreecomboboxTreecheckNodeTree技术文档.docx(42页珍藏版)》请在冰豆网上搜索。
Struts2SpringHibernate整合ExtJS开发FilterTreecomboboxTreecheckNodeTree技术文档
SSHExtTree
开标题就知道是Struts、Spring、Hibernate、ExtJS的Tree实例文档,其中包括Filter功能的checkNodeTree、comboBoxCheckNodeTree、comboBoxTree这三种扩展的tree。
不错,如果你不了解Struts、Spring、Hibernate、ExtJS,也不要紧。
跟着我做,做出这个例子应该木有问题。
生产环境:
System:
Windows
WebBrowser:
IE6+、Firefox3+
JavaEEServer:
tomcat5.0.2.8、tomcat6
IDE:
eclipse、MyEclipse6.1+
Database:
MsSQLServer2000、2005
开发依赖库版本:
ExtJS:
lib2.1
Struts:
2.1.4
Hibernate:
3.2
Spring:
2.0
Email:
hoojo_@
Blog:
如果你具备上面的环境后,下面就可以跟着我一步步的完成这个SSHExtTree的示例。
1、添加Hibernate支持,这里我用MyEclipse的工具直接添加jar包和链接数据库的配置文件,这一步如果你熟悉可以跳过。
A、首先你选择你的MyEclipse中的MyEclipseDatabaseExplorer这个视图
B、进入视图后,点击new
C、进入new视图后,你就可以添加你的DB的链接数据库的种类、端口、地址、数据库名称
我上面选择的是MsSQL2005
ConnectURL:
jdbc:
jtds:
sqlserver:
//localhost:
1433/jc2009_gdszz
jc2009_gdszz是数据库的名称,是建科院的数据库
用户名、密码就是你链接数据库的密码
注意的是你还要添加你的链接数据库的driver,我这里用jdts驱动
上面的完成后,你可以点击TestDriver就可以测试你的链接对不对。
如果对的话就会出现上面的successfully!
D、继续Next你可以选择第三个单选按钮,就是下面的1。
然后点击Add按钮选择你的数据库。
这样后面链接数据库的时候就不会出现其他的数据库了;点击Finish
E、下面开始链接数据库
上面的sql_2005就是我们刚才建的数据库链接了。
右键sql_2005,然后点击Openconnection,就可以链接到你的数据库了
F、然后展开数据库,选择dbo展开,选择table。
你就看到你的数据库中的表了
至此数据链接创建成功,下面我们添加Hibernate的支持。
G、下面切换到MyEclipseJavaEE视图,如果你喜欢Java视图也可以。
这里用MyEclipseJavaEE视图。
然后右键点击你建好的SSHExtTree这个WebProject
选择MyEclipse,选择AddHibernate
H、进入添加Hibernate支持的视图后,选择Hibernate3.2;然后记得选择添加jar包到你的工程lib中
I、继续Next,选择New。
我喜欢单独的Hibernate配置文件,如果你不喜欢你可以在Spring中添加配置。
J、点击Next,进入选择数据库链接的视图,当然是选择我们刚才创建的sql_2005这个视图了。
记得选择你的数据库方言,数据库方言对于不同的数据库是不同的。
K、点击Next你就可以看到创建SessionFactory,我们用Spring就不要这个了。
点击Finish;就可以看到配置文件hibernate.cfg.xml
我们还得添加2条:
这个在调试程序的时候有用,可以格式化输入sql语句
综上所述,上面的主要完成的就是添加Hibernate的jar包和数据库链接配置文件。
你也可以手动添加Hibernate的数据库配置文件和jar包。
那样就不需要上面的步骤。
2、下面我们添加Spring的支持,请跟着我做
A、右键SSHExtTree项目,选择MyEclipse然后选择AddSpring
B、点击后你可以看到Spring的支持了,Spring选择2.0的版本。
然后就是选择你要的jar包。
C、我们选择完后,继续下一步Next
D、继续下一步Next
上面的SessionFactoryBeanid就是你的applicationContext.xml这个文件中的SessionFactory的bean的id。
在后面我们需要为其他使用Hibernate模版的文件件注入sessionFactory。
至此Spring的支持添加完毕,现在我们需要配置Spring的Aop管理我们的事务。
E、首先修改applicationContext.xml为applicationContext-common.xml,然后我们添加aop、tx的命名空间。
你也可以手动添加,如果你不记得Sping的aop、tx的命名空间,请跟着我做。
F、右键我们的Project,选择New然后选择xmlbasictemplate
G、进入页面后,直接next。
选择第二项
H、进入后,看下面的选择schema文件
先选择aop2.0,点击next
I、进入视图后你可以看到
选择p,点击Edit也就是1处。
然后将改成aop。
然后点击Add
J、进入视图后,你就可以继续选择tx这个命名空间的schame
K、点击ok后,你可以选择刚才的tx。
然后点击edit。
为它添加xsd
将nsname复制粘贴到LocationHint中,然后在后面添加/spring-tx-2.0.xsd
完了后,点击Finish。
然后copy里面的内容到刚才的applicationContext-common.xml中,内容如下:
xmlns:
aop="http:
//www.springframework.org/schema/aop"
xmlns:
tx="http:
//www.springframework.org/schema/tx"
xsi:
schemaLocation="http:
//www.springframework.org/schema/aop
http:
//www.springframework.org/schema/aop/spring-aop-2.0.xsd
http:
//www.springframework.org/schema/tx
http:
//www.springframework.org/schema/tx/spring-tx-2.0.xsd">
刚才这么多步骤就是要这些文件的内容
最后common文件的的头部就是这样的内容:
//www.springframework.org/schema/beans" xmlns: xsi="http: //www.w3.org/2001/XMLSchema-instance" xmlns: aop="http: //www.springframework.org/schema/aop" xmlns: tx="http: //www.springframework.org/schema/tx" xsi: schemaLocation="http: //www.springframework.org/schema/aop http: //www.springframework.org/schema/aop/spring-aop-2.0.xsd http: //www.springframework.org/schema/tx http: //www.springframework.org/schema/tx/spring-tx-2.0.xsd http: //www.springframework.org/schema/beans http: //www.springframework.org/schema/beans/spring-beans-2.0.xsd"> L、下面配置事务的传播特性 Hibernate的事务管理机制 --配置事务管理器,并注入sessionFactory--> 上面的配置注入了sessionFactory,property中的name是HibernateTransactionManager中的setSessionFactory这个setter方法,后面的ref是上面的bean的引用。 事务的传播特性 --配置事务的传播特性--> adviceid="txAdvice"transaction-manager="transactionManager"> attributes> methodname="add*"propagation="REQUIRED"/> methodname="edit*"propagation="REQUIRED"/> methodname="remove*"propagation="REQUIRED"/> methodname="execute*"propagation="REQUIRED"/> methodname="*"read-only="false"/> attributes> advice> 配置哪些方法参与事务的管理,add*代码addXXX开头的方法,后面的propagation是事务的传播特性、级别,最后的*代表所有方法,对于查询的方法read-only只读就可以了。 查询不需要参与事务。 配置在哪里启用事务,哪些包或类、方法参与事务管理: --配置哪些方法纳入事务管理--> config> pointcutid="filterMethod"expression="execution(*com.hhh.biz.impl.*.*(..))"/> advisoradvice-ref="txAdvice"pointcut-ref="filterMethod"/> config> 上面的pointcut称作切面,expression是表达式(关于表达式更多内容可以参考spring官方文档) execution(*com.hhh.biz.impl.*.*(..))前面的execution是固定的,括号里面的内容是 第一个*代表任意返回值,com.hhh.biz.impl代表包。 在这一层的包被纳入到事务的管理,impl.*代表impl下面的所有的class,impl.*.*代表class中所有方法,impl.*.*(..)代表的是方法的任意个参数。 这个表达的是事务管理到com.hhh.biz.impl下所有类的方法的任意返回值、任意参数 advice-ref是上面配置的事务的传播特性,pointcut-ref是上面的切面配置至此关键的配置就完毕了。 综上所述,上面的主要是完成用IDE添加Spring的jar包和配置文件,如果你不想用上面的方式,也可以手动添加jar包。 然后将xml配置文件的的头部、命名空间等信息贴到建好的xml中也是可行的。 3、下面我们将手动添加Struts2.x的jar和配置Struts2.x的运行环境 A、你需要添加以下jar包 commons-logging-api-1[1].1.1.jar freemarker-2[1].3.10.jar ognl-2[1].6.11.jar struts2-core-2.0.11.jar xwork-2[1].0.2.jar 由于和Spring整合,这里还有添加strtus和spring的插件包struts2-spring-plugin-2.0.14.jar B、下面开始配置struts的核心控制器 在web.xml中添加如下配置: 这样struts2的web.xml配置就完成了 C、下面开始添加struts的Action配置文件,这个文件的名称就是struts.xml。 不要随便更改,这个是默认的名称。 如果你想用其他的名称,请在web.xml中的核心控制器中配置param参数设置配置文件的名称。 内容如下: xmlversion="1.0"encoding="UTF-8"? > DOCTYPEstrutsPUBLIC "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN" "http: //struts.apache.org/dtds/struts-2.0.dtd"> 这样struts的配置就完成了 4、整合ssh框架,首先还是web.xml配置。 Spring提供了编码过滤器,我们在web.xml添加编码过滤器的配置。 配置加载Spring配置的路径 applicationContext-*.xml 配置加载Spring上下文的的监听器 至此配置基本完成,下面发布到tomcat中。 看看是否有误错误,没有错误请求index.jsp看看。 成功了就继续; 请求发现出现了java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener这个异常信息,发现在添加jar包的时候没有把spring-web这个选中。 那就手动添加spring-web.jar 这个jar包就ok了。 启动发现没有错误,范围index.jsp也成功了。 5、下面通过用MyEclipseDatabaseExplorer生成JavaBeans、hbm.xml配置文件 我们这里写Tree,只需用一张Tree的表就可以了。 首先看下这张表的结构,代码如下: NodeId是主键,PID引用NodeID,PID是应用的父节点。 也就是说当前数据的PID指向的数据的id就是它的父元素。 假如要查NodeID=1的子元素,那就差些PID=1的就是它的子元素的。 A、右键击sort表格,选择reverse 这里就选sort这个表,然后右键。 选择HibernateReverseEngineering就可以生产JavaBeans、hbm.xml映射文件了。 B、选择Browser,选择package C、选择createPOJODB<->Table,然后点击Finish 文件就生成了 6、编写ExtJS的Tree需要的树形结构的JavaBeans和完成Tree数据查询接口和实现代码。 TreeJavaBeans publicclassTree{ privateStringid; privateStringtext;//固定格式 privatebooleanleaf;//固定格式 privateIntegernodelevel; privateStringnodeId; privateStringpid; //privateStringuiProvider="col"; privateList //setter/getter publicTree(){ } publicTree(Stringtext,Stringid,StringnodeId,Stringpid,Integernodelevel){ this.id=id; this.text=text; this.pid=pid; this.nodeId=nodeId; this.nodelevel=nodelevel; if(nodelevel<3){ this.leaf=false; }else{ this.leaf=true; } } 上面的text、leaf、children三个元素是ExtJS的Tree的固定属性。 如果不按照这个格式创建JavaBeans,那么Tree将不能顺利加载。 BaseDao接口 publicinterfaceBaseDao /** *通过用hql完成查询 *@createDateDec25,20106: 19: 22PM *@paramhql *@return *@throwsException */ publicList } BaseDaoImpl上面接口的实现也很简单,就是继承HibernateDaoSupport完成查询 /** *function: 通过hql语句查询List集合 *@createDate2010-8-2下午05: 51: 05 *@paramhql查询hql语句 *@returnList > *@throwsException */ @SuppressWarnings("unchecked") publicList List try{ list=(List }catch(Exceptione){ thrownewRuntimeException(e); } returnlist; } 编写TreeDao接口 publicinterfaceTreeDao publicList } TreeDaoImpl上面接口实现 publicclassTreeDaoImpl privateBaseDao publicvoidsetDao(BaseDao this.dao=dao; } publicList Stringhql="selectnewcom.hhh.entity.Tree(categoryname,id,nodeId,pid,nodelevel)fromSsSortwhereisshow=1"; if(entity==null||entity.getNodeId()==null||"".equals(entity.getNodeId())){ hql+="andpidisnull"; }else{ hql+="andpid='"+entity.getNodeId()+"'"; } returndao.getList(hql); } } 上面的hql查询语句是将SsSort(Ss_sorttable)这个对象的查询到的数据封装在Tree这个对象中。 现在看看服务层biz接口和实现 publicinterfaceTreeBiz /** *通过sort对象去查询子结点list *@createDate2010-8-10下午02: 51: 55 *@param *@paramentity查询数据封装条件 *@return返回sort对象所
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Struts2SpringHibernate 整合 ExtJS 开发 FilterTreecomboboxTreecheckNodeTree 技术 文档
![提示](https://static.bdocx.com/images/bang_tan.gif)
链接地址:https://www.bdocx.com/doc/30273277.html