- 浏览: 404235 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
dageda_jgw:
...
JSF定义及原理 -
尘土飞扬:
这个在NB7中已经无效了,加不加都会提示 UTF8打不开
Netbeans统一UTF-8编码的方法 -
ouyangkang20:
不对
Struts target is null for setProperty(null, "x", [Ljava.lang.String;@179da9f) -
wpf523:
hahah,很不错啊
mysql安装图解教程 5.1 -
taburissmeng:
action中相应的属性没有set get方法就会报这样的错。 ...
Struts target is null for setProperty(null, "x", [Ljava.lang.String;@179da9f)
转载自:http://www.iteye.com/topic/359330
集成struts,spring,hibernate时,对于初学者来说最大的麻烦就其繁琐的xml配置文件。现在三者都对基于注解的配置提供了良好的支持。在struts2中,使用convent plugin,得益于annotation和规约,配置过程得以大大减少。在spring2.5也可以使用@Autowired,进行注入,使用@Controller,@Service,@Repository注解,自动定义bean,还支持annotation风格的声明式事务支持,以及aspectJ类似的AOP。hibernate也可以使用JPA标准注解定义实体描述,避免使用mapping文件。
当然,对于annotation和xml风格的配置,谁更好,更多依赖个人兴趣。但使用annotation确实减少了很多配置工作量。本文采用annotation风格的配置,以TaskList为例子讲解struts2 spring hibernate的集成。项目文件见附件。
一:配置struts2。
首先在web.xml文件中配置filter
Xml代码
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
然后在classpath中创建struts.xml配置文件。
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.convention.default.parent.package" value="default-package" />
<constant name="struts.convention.package.locators" value="action" />
<package name="default-package" extends="convention-default">
<default-action-ref name="index" />
<action name="index" >
<result>/WEB-INF/content/index.jsp</result>
</action>
</package>
</struts>
struts.devMode属性,配置启用调试,将有更多的错误信息输出,便于排错。struts.convention.default.parent.package属性,指定使用注解标注的控制器的默认包。可以在这个默认包中配置全局信息。
struts.convention.package.locators属性,为查找控制器包路径的关键字。如com.mycompany.action,com.mycompany.action.user,都会被struts2扫描。里面有继承至Action的类,或类名以Action结尾的类,都会做为Action处理。
<default-action-ref name="index" />指定了默认action,如果指定的action不存在则访问该action。
把struts2-spring-plugin-2.1.6.jar添加到classpath中,struts2会自动扫描struts-plugin.xml文件,该文件自动注册了com.opensymphony.xwork2.ObjectFactory,完成和spring的集成。
二:配置spring
在web.xml中加入ContextLoaderListener,用以启动spring容器。用contextConfigLocation指定spring配置文件路径,可以使用*通配符结尾。
Xml代码
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/applicationContext.xml</param-value>
</context-param>
配置applicationContext.xml
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<context:component-scan base-package="persistence,service,action,aop"/>
<aop:aspectj-autoproxy />
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" >
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" >
<property name="configLocation" value="classpath:hibernate.cfg.xml" />
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate" >
<property name="sessionFactory" ref="sessionFactory" />
</bean>
</beans>
<context:component-scan />指定Bean扫描的包,多个包逗号隔开,任何标注了@Component,@Controller,@Service,@Repository的类,都会被自动识别为bean。
<aop:aspectj-autoproxy />声明aspectj动态代理,启用注解驱动的aspectj配置。
<tx:annotation-driven />启用注解驱动的声明事务支持。
然后定义了sessionFactory和transactionManager,hibernateTemplate用来注入到Dao中,取代继承的方式使用spring对hibernate的集成支持。
三:hibernate配置
hibernate配置独立配置,方便修改。
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/sshdemo</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.current_session_context_class">thread</property>
<!-- 最大连接数 -->
<property name="hibernate.c3p0.max_size">20</property>
<!-- 最小连接数 -->
<property name="hibernate.c3p0.min_size">5</property>
<!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位毫秒 -->
<property name="hibernate.c3p0.timeout">120</property>
<!-- 最大的PreparedStatement的数量 -->
<property name="hibernate.c3p0.max_statements">100</property>
<!-- 每隔120秒检查连接池里的空闲连接 ,单位是秒-->
<property name="hibernate.c3p0.idle_test_period">120</property>
<!-- 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 -->
<property name="hibernate.c3p0.acquire_increment">2</property>
<!-- 每次都验证连接是否可用 -->
<property name="hibernate.c3p0.validate">true</property>
<mapping class="domain.Task" />
</session-factory>
</hibernate-configuration>
四:TaskList Demo
详细代码查看附件,附件一使用maven构建。进入目录,使用mvn jetty:run启动项目,记住创建sshdemo mysql数据库。附件二为Eclipse项目,包含所有依赖包。
- sshdemo.rar (49.2 KB)
- 下载次数: 77
- sshdemo.part2.rar (6.8 MB)
- 下载次数: 285
- sshdemo.part1.rar (8.6 MB)
- 下载次数: 373
发表评论
-
target is null for setProperty(null, "x", [Ljava.lang.String;@b0c40e)错误异常
2012-05-22 18:06 1089在提交form表单的时候发现后台经常出现类似异常, ... -
Spring 表达式语言 (Spring Expression Language) SpEL
2012-03-15 11:21 1998Spring 3.0 创建了一种新的方式用以配置对象的注入(s ... -
freemarker数据格式化问题(即数值超过四位数时有逗号)
2009-10-17 22:34 4011当数据超过3位的时候,freemarker会自动用逗号截取 格 ... -
Struts target is null for setProperty(null, "x", [Ljava.lang.String;@179da9f)
2009-10-15 18:34 15298上午工作中出现了这样一个异常: ognl. ... -
freemarker 的内建函数 contains 的使用
2009-09-16 20:01 19860freemarker 的内建函数 contains 的使用:& ... -
FreeMarker学习
2009-09-16 19:29 1931关于FreeMarker 的基础学习请参考文档。。这里主要 ... -
JPA多对多的查寻方法
2009-09-03 12:12 3550第一种方法: 比如有2个entity class A { ... -
spring/struts2 整合(转载)
2009-07-31 16:00 889在Struts2中整合Spring的IoC ... -
Java开发,重在整合-----Struts 2整合Spring
2009-07-31 15:55 181113.2 Struts 2整合Spring Str ... -
Struts2.1.6与spring2.5.5集成
2009-07-29 17:00 1464把struts2-spring-plugin-2.1.6.ja ... -
基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发 (3)
2009-07-29 16:46 1564进入我们基于Annotation的Struts2.0+H ... -
基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发 (2)
2009-07-29 16:42 1349基于Annotation的SSH整合开发,其实,并没有我 ... -
基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发 (1)
2009-07-29 16:37 1283写这个主题的文章在 ... -
Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 整合开发
2009-07-29 16:29 1991来自:http://www.cnitblog.com/intr ... -
Struts2.1.x+Spring2.5.x+Hibernate3.2.x实例教程
2009-07-29 12:07 1746、最简单的SSH程序 概要 本文将完成最常见的login功能 ... -
Struts2.1.6测试小记
2009-07-29 11:53 928Struts2.1.x终于推出正式版了,迫不急待地下了试试(读 ...
相关推荐
struts2.0 spring2.5 hibernate3.2 注解最新框架
Struts2 Spring3 Hibernate 注解功能 DAO 泛型 通用分页
Struts2+hibernate+spring开发,使用MySQL数据,实现学生基本信息的增删改查功能,但是页面不美观
SSH2 annotation 实现struts2.1.6 spring2.5.6 hibernate3.3 全注解开发 hibernate延迟加载_懒加载 具体应用
SSH三大框架整合 struts2+hibernate+spring (全注解方式进行配置)
Struts2 Spring3.0 Hibernate3.3 整合全注解配置用的数据库。
Struts2.3.28+spring4.1.6+hibernate4.3.8整合总结(注解),测试环境使用myeclipse2014,jdk1.6
Spring3Annotation+Struts2Annotation+Hibernate3Annotation 全注解集成开发,操作Emp表
struts2+HIbernate+Spring整合所需jar包 包含数据库连接池jar包 hibernate注解所需jar包 日志处理log4j及slf日志框架及实现的jar包
描述ssh框架的部分注解,包括hibernate实体类、spring data jpa 等重用注解的含义介绍,比较适用想学习基于注解的ssh框架的初学者。
struts2+spring+hibernate s2sh半注解结合方式框架搭建开发
b 在struts.xml中添加action,使用通配符的方式 , 注意这里和单独struts2不同的地方: class属性指向的是bean 的 id ,这里我们配置bean采用spring ioc注解的方式, 所以默认的bean的id 为 类名(首字母小写) ...
Struts2Spring4Hibernate4整合,Hibernate使用的是注解,没有使用Maven,这个是帮一个小伙伴整合做的demo
超级详细的SSH2项目实例详解,并且附带两个项目详解。两种注解实现方式。...在JavaEE企业级开发中,以SSH2框架为核心的应用非常广,大象根据项目实践经验,通过二个实例,详细的为大家讲解如何实现全注解式的开发。
(1)该项目是基于spring3+struts2+hibernate3+spring security3的权限管理项目 (2)后台我已经实现了权限管理,包括用户,角色和资源的分配。前台实现了spring security3的管理 (3)网上案例普遍是后台单一登陆。...
springmvc注解.doc,Spring注解讲解.doc,struts2标签详解.pdf,struts2常用标签.pdf,Struts2页面开发中常用标签.pdf,Struts2注解详细说明文档.doc,Hibernate注解教程:Hibernate Annotation使用实例.maff
NULL 博文链接:https://wangxuehui.iteye.com/blog/1636828
NULL 博文链接:https://tianlihu.iteye.com/blog/1815404
Struts2 Spring3.0 Hibernate3.3 全注解配置,避免了大量业务类在Spring文件的配置,整合了DWR3.0,displayTag 物理分页技术的实现。树形菜单。 另外数据库,在下一个资源;由于20MB的限制。 有问题的话留言。