日期:2014-05-16  浏览次数:20322 次

写Jquery的自动补全功能时遇到了点麻烦,高手进,求助
我在写JQuery的自动补全时,在前台js中已经实现到可以通过前台页面获取值然后通过$.post(url,data,callback,type)这个方法来跳到后台的Struts中进行查询了。可以查询出数据来但是查询的数据怎么再传回前台页面呢?
我用的是struts2的跳转,Hibernate的查询,和spring的注入 现在是有值没法通过回调函数继续往下运行 求解啊~~!!!!!!!!!!!!!!!!!!!!!!!!!!!

------解决方案--------------------
一種方案是4#的那種。
第二種,就是把你的JAVA返回的list賦給本類的屬性,再給到你的這個屬性加一個@JSON注解,最后在struts的配置文件配一下這個return(類型是json)就OK(因為你用了spring,struts,所以才能這麼用)。
------解决方案--------------------
Java code

导入json相应的jar包
    commons-beanutils-1.7.0.jar,commons-collections-3.2.jar,commons-lang-2.4.jar
   commons-logging-1.1.jar,ezmorph-1.0.6.jar,json-lib-2.2.3-jdk15.jar
   jsonplugin-0[1].30.jar这是我的json相应的jar

    struts.xml

    <package name="search" namespace="/oe" extends="json-default">
       <action name="SearchProduct" class="SearchProductAction" method="SearchProduct">
            <result type="json">
               <param name="root">result</param>
            </result>
      </action>
    </package>
Action
    public String result;
    写对应的set和get方法

     response.setCharacterEncoding("utf-8");
    JSONArray jsonArray = JSONArray.fromObject(list);
    result = jsonArray.toString();
前台jsp
    success: function(data){
              var data=eval("("+data+")");
         自己对data进行解析    
    }