hibernate+json报no session

含有外键的po,采用lazy加载模式时,session会在进入service(action)前关闭。

方案1:

可在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>*.action</url-pattern>
</filter-mapping>

<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>

注意要配置在struts的过滤器前。

方案2:

public <T> void write(List<T> list,String... values){

String [] ignore=null;

HttpServletResponse response = ServletActionContext.getResponse();

response.setContentType("text/html;charset=UTF-8");

response.setCharacterEncoding("UTF-8");// 防止弹出的信息出现乱码

PrintWriter writer=null;

try {

writer = response.getWriter();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

JsonConfig jsonConfig = new JsonConfig();

jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);

if (values != null) {

ignore =new String[values.length];

for (int i = 0; i < values.length; i++) {

ignore[i]=values[i];

}

}

jsonConfig.setExcludes(ignore);

JSONArray json =JSONArray.fromObject(list, jsonConfig);

//防止因嵌套产生的死循环


System.out.println(json);

writer.print(json);

}

jsonConfig.setExcludes(ignore);为给json添加过滤字段。


转载于:https://my.oschina.net/u/2286010/blog/635514

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值