论坛首页 Web前端技术论坛

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

浏览 26234 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-07-30  
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
   发表时间:2008-04-26  
呵,比我的做法好多了.我直接定义了一个新的返回的 ModelAndView .然后在解析时进行了拦截.
0 请登录后投票
   发表时间:2008-04-26  
自定义你的VIEW层,比这个写的更简单
0 请登录后投票
   发表时间:2008-04-28  
我的作法可能与你不同,但是也是为了SpringMvc支持Ajax请求.
扩展Spring MVC 用以支持Controller对Ajax的处理
http://javaest.iteye.com/blog/187504
0 请登录后投票
   发表时间:2008-04-28  
renderMergedOutputModel是哪来的接口  还是个方法?
0 请登录后投票
   发表时间:2008-06-26  
请问如何将jquery和jsf结合在一起呢?
我看到jones 在http://www.iteye.com/problems/782 写的一个方式,

但是jQuery.get(url,[data],[callback])能不能在jsf中直接使用?
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics