struts2.1.8+spring2.5+hibernate3+EetJs结合struts2-json-plugin-2.1.8.1.jar得到json数据注意事项

来源:互联网 发布:java封装修饰符 编辑:程序博客网 时间:2024/05/29 07:54

由于工作需要,需要开发一个项目,用到的是struts2.1.8+spring2.5+hibernate3+EetJs结合struts2-json-plugin-2.1.8.1.jar得到json数据返回给ExtJs使用,由于是刚接触struts2.1.8和struts2-json-plugin-2.1.8.1.jar来配置,所以遇到不少问题,现在整理一下配置注意事项:

    1、首先,用了struts2-json-plugin-2.1.8.1.jar在以前版本中的json的jar包则需删去,否则会报错。

    2、在action中应注意的问题:

    除需要得到的数据要用get方法外,其余的尽量不要用get,并且注入的server千万不能用get方法,除jdbc直连可以,具体怎么回事,不是很清楚,有兴趣的朋友可以研究一下,如知道的可以告诉我一下,谢谢!因为我不是很清楚他的内部实现原理!

    

    例:其中的list就不要生成get方,否则会无法取得json,这是我找了很久的问题之一,最后还是在别人的博客中提到过试了一下发现正是有这个相关原因。

public class TestAction extends ActionSupport{
 
 private List<Test> tests;
 private ITestManage testMag;


 public void setTestMag(ITestManage testMag) {
  this.testMag = testMag;
 }

 public List<Test> getTests() {
  return tests;
 }

 public void setTests(List<Test> tests) {
  this.tests = tests;
 }

 @Override
 public String execute() throws Exception {
  tests=testMag.findAll();
  return SUCCESS;
 }

}

    3、再次就是struts.xml的配置问题,如是手动转换的就用自己手动转换的方法吧

    在struts.xml中如果想直接用struts2.1.8的新特性,自动转换数据为json数据的话,那就得再定义一个包,继承自"json-default"

    然后是result中type设为json,此时有个注意事项,就是需要设置参数

   <param name="excludeProperties">TestManager</param>

   在你有result中,其中TestManager是你自己注入的server接口名称,千万注意此点,如果你没有配没有问题,那可能是你的方式不一样也可能,但如果没配不行,那就把这个配上试试吧,嘿嘿,另外还可以配置一下

<param name="excludeProperties">.*hibernateLazyInitializer</param>

听说这后面一个是解决hibernate反射关闭的也就是实体中的属性是另外的实体的问题,有兴趣的朋友可以试试

   例:

    <package name="json" extends="json-default">
     <action name="test" class="test">
         <result type="json">
         <param name="excludeProperties">TestManager</param>
         <param name="excludeProperties">.*hibernateLazyInitializer</param>
         
         </result>
        </action>
    </package>

 

 

     以上三点基本都是别人提到过的,不过没有人全部总到一起过,可偏偏让我一起遇到了,塞翁失马焉知非福呢,嘿嘿,至少让我积累了这几个注意事项,如果有相同的朋友,也算是我对他们的一点点帮助吧!

  

     最后也希望大家工作学习顺利,也希望大家一起努力,只要有大家一起努力,那所有的问题就不算问题了,群众的力量是强大的,嘿嘿!

 

     如需要什么帮助,可以联系我,我的QQ是247427748,祝大家天天开心!

 

 

原创粉丝点击