jquery + json + springMVC集成在controller中实现Ajax功能

来源:互联网 发布:穿越火线深度优化 编辑:程序博客网 时间:2024/05/17 23:18

转载来源:http://blog.csdn.net/alinaxz/article/details/6621563



1、在spring配置文件中加入xmlViewResolver

xml 代码
 
  1. <!-- 定义XML view -->  
  2.     <bean id="xmlViewResolver" class="org.springframework.web.servlet.view.XmlViewResolver">  
  3.       <property name="order" value="1"/>  
  4.       <property name="location" value="/WEB-INF/ajax-views.xml"/>  
  5.     </bean>  
2、增加一个spring配置文件:ajax-views.xml
xml 代码
 
  1.      <bean name="jsonView" class="com.xx.util.AjaxJsonView">  
  2.         <property name="contentType">  
  3.             <value>text/xml;charset=utf-8</value>  
  4.         </property>  
  5.      </bean>  
3、AjaxJsonView继承AbstractView,并实现renderMergedOutputModel接口
java 代码
 
  1. response.setContentType("text/xml; charset=UTF-8");  
  2. // Set standard HTTP/1.1 no-cache headers.  
  3. response.setHeader("Cache-Control",  
  4.         "no-store, max-age=0, no-cache, must-revalidate");  
  5.   
  6. // Set IE extended HTTP/1.1 no-cache headers.  
  7. response.addHeader("Cache-Control""post-check=0, pre-check=0");  
  8.   
  9. // Set standard HTTP/1.0 no-cache header.  
  10. response.setHeader("Pragma""no-cache");  
  11. JSONArray jsonArray = (JSONArray)map.get("ajax_json");      
  12. response.getWriter().write(jsonArray.toString());  
4、在controller中增加属性String jsonView,用来区分不同的view,并增加被Ajax调用的方法
java 代码
 
  1. public ModelAndView isEmptyOfCategory(HttpServletRequest request,  
  2.         HttpServletResponse response) throws Exception{  
  3.                //ajax method?   
  4.     boolean isAjax = RequestUtils.getRequiredBooleanParameter(request, "ajax");  
  5.                //others parameters  
  6.     jsonObject.putOpt("categoryId", category_id);  
  7.     jsonObject.putOpt("categoryName", category.getName());  
  8.     isEmpty = false;  
  9.     jsonObject.putOpt("isEmpty", isEmpty);  
  10.     String view = null;  
  11.     if (isAjax) view = this.getJsonView();  
  12.     return new ModelAndView(view, "ajax_json", jsonObject);  
  13. }  
5、在jsp页面中实现ajax get方法
js 代码
 
  1. $.get('controller?method=isEmptyOfCategory',{id: id, ajax: 'true'},function(response) {  
  2.             try {  
  3.              var json = eval(response);  
  4.              for (var i = 0; i < json.length; i++) {  
  5.             alert(json[i].isEmpty);  
  6.          }  
  7.             } catch(e) {  
  8.                 alert("Error in JSON response:"+e);  
  9.             }  
  10.        });  
注:需要引入jquery.js,json for java和spring framework