`

spring hibernate struts 整合开发(6) - 额外功能

阅读更多
一. spring hibernate struts 整合开发(1) - 搭建环境
二. spring hibernate struts 整合开发(2) - Spring集成的Hibernate编码和测试
三. spring hibernate struts 整合开发(3) - Struts集成Spring
四. spring hibernate struts 整合开发(4) - Struts与Spring集成2
五. spring hibernate struts 整合开发(5) - Hibernate二级缓存
六. spring hibernate struts 整合开发(6) - 额外功能


Spring提供的CharacterEncoding和OpenSessionInView功能。

这里通过一个表单页面,提交数据,由struts封装数据,并由action调用业务层持久化数据,来引出乱码问题。

1. 创建index.jsp页面

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html:form action="/person/dispose">
	<html:text property="name" />
	<html:hidden property="method" value="add" />
	<html:submit value="Submit" />
</html:form>


2. 配置struts-config.xml

添加action和form-bean:

	<form-beans>
		<form-bean name="personForm" type="com.john.web.formbean.PersonForm" />
	</form-beans>
	<action-mappings>
		<!-- Let the action be managed by spring, thus type property is eliminated -->
		<action path="/person/dispose" name="personForm" scope="request" parameter="method" validate="false">
			<forward name="message" path="/WEB-INF/pages/message.jsp"/>
		</action>
	</action-mappings>


Note: 这里的action和form-bean都是用type来表示类的全限定名的,不是className。

3. 配置beans.xml

添加action bean:
<bean name="/person/dispose" class="com.john.web.action.PersonDisposeAction"/>


4. 创建PersonForm和PersonDispatchAction类

public class PersonForm extends ActionForm {
   private Integer id;
   private String name;
   // getters and setters are omitted
}


// Utilize DispatchAction to execute specified method
public class PersonDisposeAction extends DispatchAction{
	// Since this action is managed by spring, we could
	// inject the business bean
	@Resource PersonService personService;
	
	public ActionForward add(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		PersonForm personForm = (PersonForm)form;
		personService.save(new Person(personForm.getName()));
		request.setAttribute("result", "Saved successfully!");
		return mapping.findForward("message");
	}
}


5. 创建结果显示页面message.jsp

<body>
${result}
</body>


开启服务,打开index.jsp页面,输入名称,提交。

6. 使用spring解决struts1.3乱码问题

如果输入的名称是中文,保存到数据库后是乱码,可以使用spring提供的方法:

在web.xml加入:
  <filter>
  	<filter-name>encoding</filter-name>
  	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  	<init-param>
  		<param-name>encoding</param-name>
  		<param-value>UTF-8</param-value>
  	</init-param>
  </filter>
  <filter-mapping>
  	<filter-name>encoding</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>


7. 使用spring解决hibernate因session关闭导致的延迟加载例外问题

在web.xml加入:
  <filter>
  	<filter-name>OpenSessionInViewFilter</filter-name>
  	<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>OpenSessionInViewFilter</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>


整理自:传智播客spring教程
分享到:
评论

相关推荐

    SSH(Spring+Hibernate+Struts2)框架整合必须的85个jar包

    SSH框架整合是Java Web开发中常见的一种技术栈,由Spring、Hibernate和Struts2三个开源框架组合而成。这个组合提供了一种高效、灵活且可扩展的解决方案,用于构建企业级的Web应用程序。以下是对SSH框架整合及其中...

    Struts 2+Hibernate+Spring整合开发技术详解 12~17章

    这本由蒲子明编著的《Struts 2+Hibernate+Spring整合开发技术详解》深入探讨了如何将这三个框架有效结合,以构建高效、模块化的Web应用。书中第12到17章的内容涵盖了以下几个关键知识点: 1. **Struts 2框架**: -...

    struts2.1.6+spring2.0+hibernate3.2常用配置包

    最近温习ssh2整合编程,顺便浏览下struts2有什么更新的消息,下载了新版本的struts2的2.1.8.1版,使用的是MyEclipse8.0开发,但是问题就随之而来了。MyEclipse8.0中自带的struts2版本是2.1.6,spring版本有2.0,2.5...

    ssh2整合(spring+struts2+hibernate)-附

    SSH2整合指的是Spring、Struts2和Hibernate三个开源框架的集成应用。这三大框架分别负责不同的职责:Spring作为基础架构框架,提供依赖注入(DI)和面向切面编程(AOP),Struts2则用于MVC(Model-View-Controller)...

    struts-spring-hibernate图解

    Struts、Spring 和 Hibernate 是Java Web开发中的三个关键框架,它们各自解决不同的问题,并通过集成提供了强大的企业级应用开发能力。 Struts 是一个基于MVC(Model-View-Controller)设计模式的开源Web应用程序...

    spring hibernate struts login3

    在IT行业中,Spring、Hibernate和Struts是三个非常重要的开源框架,它们分别专注于不同领域的应用开发。本项目“spring hibernate struts login3”显然旨在实现一个基于这三大框架的登录功能。以下将详细讲解这三个...

    struts2+Hibernate+Spring整合开发代码

    在这个"struts2+Hibernate+Spring整合开发代码"中,开发者可以学习到以下几个关键知识点: 1. **配置整合**:理解如何在Spring配置文件中声明Struts2的Action类,以及如何配置Hibernate的数据源、SessionFactory和...

    Struts+Spring+Hibernate 整合教程.pdf

    ### Struts+Spring+Hibernate 整合教程...综上所述,通过Spring整合Struts和Hibernate,不仅可以有效地实现各层之间的解耦,还能极大地提高开发效率和代码质量。此外,这种整合模式也为后续的维护和升级提供了便利。

    Struts2+Spring+Hibernate集成开发环境的配置小例子

    Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们的组合被称为SSH2。SSH2框架集成可以实现MVC(Model-View-Controller)架构,提供强大的数据持久化、业务逻辑管理和用户界面控制能力。下面我们将详细...

    Spring集成struts以及hibernate jar包

    标题中的"Spring集成struts以及hibernate jar包"指的是在Java Web开发中,将Spring框架与Struts2和Hibernate框架进行整合的过程。这通常是为了构建一个完整的MVC(Model-View-Controller)架构,其中Spring负责依赖...

    Spring、Hibernat、struts2、mybatis分别需要的jar包

    在Java Web开发中,Spring、Hibernate、Struts2和MyBatis是四个非常重要的框架,它们各自负责不同的职责,但通常被组合在一起使用,形成所谓的"SSH"或"SSM"(Spring、Struts2、Hibernate)或者"SSHM"(Spring、...

    Struts2+Hibernate+Spring整合开发深入剖析与范例应用05

    在"Struts2+Hibernate+Spring整合开发深入剖析与范例应用05"的源码中,我们可以看到具体的配置文件(如struts.xml、spring-context.xml、hibernate.cfg.xml)、Action类、Service类、DAO类以及实体类等。通过对这些...

    struts+hibernate整合jar包

    Struts和Hibernate是两个在Java Web开发中广泛使用的开源框架。Struts主要负责MVC(Model-View-Controller)架构的实现,提供控制层的...在导入项目时,只需将这些jar包添加到项目的类路径中,就可以开始进行整合开发。

    Spring4.2.5+Hibernate4.3.11+Struts2.3.24整合开发

    在SSH2整合开发中,Spring负责整个应用的控制流程和依赖注入,Hibernate处理数据持久化,而Struts2则处理HTTP请求并展示视图。通过合理的配置,这三个框架可以协同工作,实现强大的业务逻辑处理和用户交互。 例如,...

    struts spring hibernate整合

    Struts、Spring 和 Hibernate 是Java开发中非常著名的三大框架,它们分别用于Web层、业务层和服务层的管理,常被整合在一起,构建出强大的企业级应用。Struts提供了MVC(Model-View-Controller)架构模式,Spring ...

    spring,hibernate,struts-jar文件

    在Java Web开发领域,...总之,Spring、Hibernate、Struts三大框架各自解决了Web开发中的不同问题,通过合理整合,可以构建出强大的企业级应用。掌握这三个框架及其jar文件的使用,对于提升Java Web开发技能至关重要。

    轻量级Java EE企业应用实战--Struts 2+Spring+Hibernate整合开发

    《轻量级Java EE企业应用实战--Struts 2+Spring+Hibernate整合开发》这本书由李刚编著,主要探讨了在Java EE环境下如何利用轻量级框架进行高效的企业级应用开发。书中聚焦于三个核心的开源框架:Struts 2、Spring 和...

    spring &struts整合

    通过整合 Spring 和 Struts2,我们可以利用 Spring 的强大功能来管理应用程序的生命周期,同时利用 Struts2 的 MVC 架构和拦截器机制来处理 Web 请求,实现高效、解耦的 Java Web 应用程序开发。

    Struts2+Hibernate+Spring 整合示例

    Struts2、Hibernate和Spring是Java Web开发中的三大框架,它们各自负责应用程序的不同层面:Struts2处理MVC(Model-View-Controller)架构中的控制层,Hibernate专注于数据持久化,而Spring则提供了全面的依赖注入和...

    Spring联合Struts和Hibernate开发

    在IT行业中,Spring、Struts和Hibernate是三个非常重要的开源框架,它们分别专注于不同领域的应用开发。Spring是一个全面的后端开发框架,提供依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等特性;...

Global site tag (gtag.js) - Google Analytics