多视图处理下的懒加载

最近遇到最多的一个问题是懒加载在render View的时候无法取得值的问题。懒加载处理对象有两种代理模式,jdk动态代理[默认]和cglib编织字节码代理。
HTTP Status 500 - Unable to locate object to be marshalled in model: {member=memberid|1 name|lily phone|1356874584 email|lily@air.com, org.springframework.validation.BindingResult.member=org.springframework.validation.BeanPropertyBindingResult: 0 errors}
org.springframework.web.servlet.view.xml.MarshallingView.renderMergedOutputModel(MarshallingView.java:104)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:264)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:811)
如上是返回xml视图时报错
[img]http://dl2.iteye.com/upload/attachment/0112/8035/292cf1f4-af83-3b45-bdb4-cb5f6df8f546.png[/img]
如上是对象信息,返回对象经过懒加载封装,在视图取值时就会报错
		<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-hibernate3</artifactId>
<version>2.0.0</version>
</dependency>

然后找到fasterXML,用于处理json数据显示时的懒加载,但是xml还没找到相似功能的模块。
 <property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
<property name="objectMapper">
<bean class="org.carryli.common.hibernate.MyObjectMapper" />
</property>
</bean>
</list>
</property>


貌似是spring在3.2使用fasterxml处理懒加载
import org.springframework.stereotype.Component;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.hibernate3.Hibernate3Module;

@Component
public class MyObjectMapper extends ObjectMapper {

public MyObjectMapper() {
Hibernate3Module hbm = new Hibernate3Module();
hbm.enable(Hibernate3Module.Feature.FORCE_LAZY_LOADING);

registerModule(hbm);
configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
}

public void setPrettyPrint(boolean prettyPrint) {
configure(SerializationFeature.INDENT_OUTPUT, prettyPrint);
}
}

以上作为记录
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值