总结一下整合Struts2+Hibernate3+Spring4开发Java Web应用过程
来源:互联网 发布:淘宝收藏软件哪个靠谱 编辑:程序博客网 时间:2024/06/05 19:22
-
--------------------------------------------------------------------------------------------------------------------------------------------------------------
开发实例:用户管理系统实现功能:系统与本地数据库连接,支持在网页上用户的登陆,注册,与查询用户信息。
开发流程:
SSH整合开发--用户管理系统
--0.环境的搭建
---a.spring和hibernate的整合
---b.spring和Struts的整合
---c.配置文件的配置
--1.数据库的实现
---a.建表:id,name,password,type
--2.Hibernate持久层的设计
---a.编写持久化类
---b.编写映射文件
--3.Dao层设计
---a.编写Dao层接口
---b.编写Dao层接口实现类
--4.业务逻辑层的设计
---a.编写service层接口
---b.编写service层接口的实现类
---c.配置spring的配置文件,为service的实现类注入dao组件
--5.完成用户登录的设计--表现层Struts2
---a.编写用户登录action类
---b.编写用户登录login界面jsp文件
---c.配置spring配置文件和web.xml和struts.xml
----------------------------------------------------------------------------------------------------------------------------------------------------------------
开发中遇到的问题:
Q1:Spring和Hibernate整合后当通过Spring中的this.getHibernateTemplate.find()调用find方法时,出现错误
user is not mapped [from user]
解决:
原错误代码:
public List<User> findAll() {
String hql = "from user";
return (List<User>)this.getHibernateTemplate().find( hql);
}
表名是user,会出现user is not mapped [from user]这个语法错误
原因:Hibernate是对类查询的,原hql语句“from user”中user是数据表,
而持久化类是User,所以将hql语句改成“from User”即可解决错误。
----------------------------------------------------------------------------------------
Q2:Sturts层Action类中的属性service是Serivce层中的对象(通过Spring注入Action类),但当Action被实例化调用该属性service时发现为null,没有注入成功.
解决:
a.有可能在struts.xml中配置action时class值设了action类名,没有用Spring中Actionbean的id值作class值(即是不通过Spring容器拿到Action实例,而是自己用类名实例化);
b.有可能在struts.xml配置文件中没有设置属性
<constant name="struts.objectFactory" value="spring">中value没有设值为Spring的值
----------------------------------------------------------------------------------------
Q3:错误Caused by: Cannot locate the chosen ObjectFactory implementation: spring - [unknown location]
解决:
1.添加struts2-spring-plugin jar包
2.添加下述配置文件xml
<!-- Struts2配置 --><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class><init-param><param-name>config</param-name><param-value>struts-default.xml,struts-plugin.xml,struts.xml</param-value></init-param></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>
----------------------------------------------------------------------------------------
Q4:Spring整合Hibernate出错,异常 'sessionFactory' or 'hibernateTemplate' is required的解决方法
解决:第一步:在继承HibernateDaoSupport类的DaoImp类中中增加如下方法,使用@Autowired:
Java代码
- @Autowired
- public void setSessionFactoryOverride(SessionFactory sessionFactory)
- {
- super.setSessionFactory(sessionFactory);
- }
第二步:在spring配置文件中配置DaoImp类的bean元素时加入设值注入。
<property name= "sessionFactory">
<ref bean ="sessionFactory" />
</property>
----------------------------------------------------------------------------------------
Q5:报错java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
解决: google了一下,原来是少了hibernate包中的jta.jar。
----------------------------------------------------------------------------------------
Q6:报错Caused by: java.lang.NoClassDefFoundError:javax/persistence/EntityListeners
解决:这个是hibernate3.6版本的;所以还缺少JPA jar 包;还需要导入jar包。可以在Hibernate 3.6 distro: hibernate-distribution-3.6.0.Final/lib/jpa/hibernate-jpa-2.0-api-1.0.0.Final.jar找到之后导入就可以了。
----------------------------------------------------------------------------------------
Q7:Struts2中出现 严重: Dispatcher initialization failed错误
解决:拦截器初始化失败,一般是缺少了struts2相关的jar包
0 0
- 总结一下整合Struts2+Hibernate3+Spring4开发Java Web应用过程
- spring4+hibernate3+struts2整合模板
- 【SSH】Struts2.3+Spring4.3+Hibernate3整合
- Struts2+Spring2+Hibernate3 整合开发
- Struts2+Hibernate3.3整合开发
- Struts2-Spring3-Hibernate3整合开发
- Struts2+Hibernate3.2+Spring 2.0整合应用
- Struts2+Spring2.5+Hibernate3.3 整合总结
- Struts2+Spring2.5+Hibernate3.3 整合总结
- Struts2+Spring2.5+Hibernate3.3整合开发
- Struts2+Spring2.5+Hibernate3.3整合开发
- Struts2+Spring2.5+Hibernate3.3整合开发
- Spring4的知识应用总结(七)—— Spring整合Struts2框架
- Spring2+Strutrs2+Hibernate3整合过程总结
- Struts2+Spring2+Hibernate3 web应用示例(一)
- Struts2+Spring2+Hibernate3 web应用示例(二)
- Struts2+Spring2+Hibernate3 web应用示例(三)
- Struts2+Spring2+Hibernate3 web应用示例(四)
- 访问数据库时出现“Duplicate entry \'0\' for key \'PRIMARY\'错误“
- MS SQL Server 2005网络服务器配置…
- Spring中JDBCTemplate中queryForObject()方法的使用
- Spring中JDBCTemplate使用queryForObject方法时 ”Incorrect column count: expected 1, actual 5“错误
- To change your life fast,use gra…
- 总结一下整合Struts2+Hibernate3+Spring4开发Java Web应用过程
- Whatever feelings you have withi…
- SQL 存储过程
- <1>每周一读</1>——《娱乐至死》
- ITOO---"系统设置"之数据库表
- linux shell的here document用法(cat << EOF)
- JAVA进阶:VO(DTO)与PO(DAO)之间的转换
- <1>每周一读</1>——《疯狂程序员》
- The universe is right with you a…