`
pengjj2
  • 浏览: 139411 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

springMVC+hibernate 嵌套对象时产生的一个问题及解决方法

阅读更多

最近在使用springMVC的时候,产生了这样一个问题。

 

一个Hibernate的Entity,命名为Department.

 

Department 内有一个父节点变量 命名为 depParent;

 

因为是一个外键设置,所以depParent不能在声明时 却 new ,也不能在get 的时候去new

 

所以我在一个JSP页面提交一个这样的form时

 

<form id="addForm" action="addDepartment.htm" method="post" onsubmit="return inputCheck();">
		<table>
			<tr>
				<td>*<spring:message code="departMent_name" />:</td>
				<td><input type="text" id="name" name="name"/></td>
			</tr>
			<tr>
				<td><spring:message code="departMent_beyond" />:</td>
				<td>
					<!-- <input id="parentDep.id" type="hidden" name="parentDep.id" /><input id="parentDep.name" type="text" name="parentDep.name"/> -->
					<input id="parentDep.id" type="text" name="parentDep.id"/>
				</td>
			</tr>
		</table>
	 <div><input type="submit"  value="<spring:message code="submit"/>" /></div>
	</form>

 这两个input都是有值的,然后我后台的controll用Department进行接收

 

 结果老是抛空指针异常。

 

用过struts2的都知道,这种写法是没有什么问题,可以直接进行类型的转换。

 

可是spring不行,我开始还以为是spring mvc不支持这种对象的嵌套的类型转换。

 

但是写propertyEditor也解决不了问题,

 

最后没办法只能跟踪源码,发现spring在做类型转换时,会用反射的方法取调用get方法,结果取出来是null,就会抛异常。

 

所以,最后的解决方案,只能再做一个暂态的变量来给spring进行转换。

 

到此,问题找了个折中的方式解决了。

 

不过从这点来看,spring的类型转换没有strust2的强大和智能,

 

所以如果想采用这种方式,对象类的嵌套对象,在get方法的时候必须能取到一个对象,而不是null。如果没办法new,就用一个新的变量来做一个中转吧。

 

这是我自己学习找到的一些经验,如有什么不足,多指教。

 

 

分享到:
评论

相关推荐

    Spring+SpringMVC+Hibernate框架集成详解

    Spring+SpringMVC+Hibernate 框架集成详解 本文档旨在详细介绍 Spring、SpringMVC 和 Hibernate 框架的集成,旨在帮助开发人员快速了解这三个框架的集成过程。 Spring 框架 Spring 框架是一个 Java 语言的开源...

    基于Spring+SpringMVC+Hibernate的图书管理系统

    系统采用技术:Spring+SpringMVC+Hibernate+jQuery+Ajax+面向接口编程。 简介:该图书管理项目实现了三种角色的功能,分别是超级管理员,图书管理员和读者。在系统中,实现了图书管理,统计管理,系统管理和系统监控...

    idea工具创建的Spring+SpringMVC+Hibernate+maven项目

    标题中的"idea工具创建的Spring+SpringMVC+Hibernate+maven项目"指的是使用IntelliJ IDEA这个集成开发环境(IDE)构建的一个Java Web项目,该项目整合了四个关键的技术框架:Spring、SpringMVC、Hibernate以及Maven...

    基于SpringMVC+Hibernate实现的在线购物商城.zip

    基于springmvc+Hibernate实现的在线购物商城.zip基于springmvc+Hibernate实现的在线购物商城.zip基于springmvc+Hibernate实现的在线购物商城.zip基于springmvc+Hibernate实现的在线购物商城.zip基于springmvc+...

    springmvc+spring+hibernate

    2. **创建项目结构**:创建一个Maven项目,设置好pom.xml文件,引入Spring MVC、Spring、Hibernate及相关依赖。项目目录结构一般包括src/main/java(源代码)、src/main/resources(资源配置)、src/main/webapp...

    springmvc+hibernate+easyui

    总结来说,"springmvc+hibernate+easyui"是一个使用SpringMVC作为MVC框架,Hibernate作为ORM工具,EasyUI作为前端组件库的典型企业级Web应用架构。它实现了菜单和数据列表的动态显示,使得系统具备了灵活的权限控制...

    springMVC+maven+hibernate框架

    springMVC+maven+hibernate框架,搭建的过程 可以参考 java进阶(五)------springMVC---springMVC+Hibernate+maven完整搭建运行步骤 http://blog.csdn.net/zzq900503/article/details/49892783

    SpringMVC+HIbernate登录程序并进行增删改查

    SpringMVC+Hibernate登录程序并进行增删改查是一个经典的Web开发示例,它整合了两个重要的Java技术框架——SpringMVC和Hibernate,用于构建基于Java的动态网站应用。SpringMVC是Spring框架的一部分,主要负责处理...

    Maven整合Spring+SpringMVC+Hibernate+SpringDataJPA

    在现代Java Web开发中,"Maven整合Spring+SpringMVC+Hibernate+SpringDataJPA"是一个常见的架构组合,被广泛应用于构建企业级应用程序。这个组合通常被称为"SSM",其中"M"代表Maven,"S"代表Spring,包括Spring核心...

    Spring+SpringMVC+Hibernate+JSP框架搭建

    "Spring+SpringMVC+Hibernate+JSP框架搭建"就是一个经典的Java Web开发解决方案,它整合了四个核心组件来实现全面的后端功能和用户界面交互。下面我们将深入探讨这四个组件以及它们如何协同工作。 1. **Spring框架*...

    基于注解的springMVC+hibernate+oracle包含数据库查询

    本文将详细解析基于注解的SpringMVC+Hibernate+Oracle数据库集成的实现过程及其核心知识点。 首先,SpringMVC是Spring框架的一部分,它是一个轻量级的MVC(Model-View-Controller)框架,用于处理HTTP请求和响应。...

    SpringMVC+hibernate实例

    在"SpringMVC+Hibernate实例"中,我们可以看到这两个框架如何协同工作。通常,SpringMVC会通过Controller接收HTTP请求,然后调用Service层(这里可能使用了Hibernate进行数据库操作)处理业务逻辑。Service层利用...

    springmvc+hibernate+oracle基础框架

    Hibernate是一个对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。通过使用Hibernate,开发者可以避免编写大量的JDBC代码,而是用面向对象的方式来操作数据库。Hibernate支持实体类与数据库表之间...

    spring3+springmvc+jpa+hibernate多数据源

    "spring3+springmvc+jpa+hibernate多数据源"是一个示例项目,它演示了如何在一个应用中集成Spring 3、Spring MVC、JPA 2.0以及Hibernate,以实现对多个数据源的支持。下面将详细介绍这些技术及其集成的关键点。 **...

    SpringMVC+Hibernate+annotation+Easyui权限管理系统

    SpringMVC+Hibernate+annotation+Easyui权限管理系统,Session过期控制(包括Ajax请求的过期控制),访问权限控制(权限控制到按钮),hibernate数据库用户名与密码加密,其它的不说了,绝对物有所值

    springMvc+hibernate Demo

    这个 "springMvc+hibernate Demo" 压缩包文件很可能是为了展示如何将这两个框架整合在一起,创建一个完整的数据驱动的 Web 应用。 **Spring MVC 框架** Spring MVC 是 Spring 框架的一部分,设计用于构建可维护、松...

    SpringMVC+Hibernate+Spring

    【SpringMVC+Hibernate+Spring】整合框架详解 在当今的Java Web开发中,SpringMVC、Hibernate和Spring是三个非常关键的组件,它们分别负责不同的职责:SpringMVC作为表现层框架,处理HTTP请求与响应;Hibernate作为...

    springmvc+hibernate完整项目

    这个"springmvc+hibernate完整项目"是一个整合了这两者的技术实践,提供了完整的部署和运行环境,对于初学者或者希望快速搭建后台服务的开发者来说非常实用。 首先,SpringMVC作为Spring框架的一部分,主要处理HTTP...

    SpringMVC+Hibernate+EXT

    总结起来,"SpringMVC+Hibernate+EXT"的项目源码提供了一个完整的解决方案,涵盖了Web开发的各个方面:从后端的业务逻辑处理到前端的用户体验设计。通过学习和理解这个项目的源码,开发者可以深入理解如何将这三个...

    Spring+SpringMVC+Hibernate+Maven框架搭建及配置文件源码

    在"Spring+SpringMVC+Hibernate+Maven框架搭建及配置文件源码"这个项目中,开发者可能已经包含了这些框架的配置文件,例如Spring的applicationContext.xml、SpringMVC的servlet-context.xml、Hibernate的hibernate....

Global site tag (gtag.js) - Google Analytics