项目需求描述:page1中的ajax请求Controller,Controller负责将service返回的数据填充到page2中,并将page2整个页面返回到page1中ajax的回调函数。

一句话表述:利用SpringMVC,以一个页面作为响应返回给ajax。

接下来,我们将介绍怎样将这样的需求实现到SpringMVC中,废话不多说,分步上代码。

1. Jquery ajax请求

对这部分不太熟悉的同学可以移步我的另一篇博客详解jQuery中ajax函数:$.get(),$.post(),$.ajax()。首先我们需要向Controller发送ajax请求。

function res(){

$.post('mine',{

qt:$('#mtext').attr('value')

},function(data) {

$('#queryresult').html(data);

});

}

page1页面

<div id="queryresult"></div>

页面中具体实现的内容不进行赘述,各位客官根据自身项目情况进行脑补即可。

2. SpringMVC处理ajax请求

先介绍一个SpringMVC中的注释@Responsebody。使用@Responsebody标识的方法表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@Responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@Responsebody后,会直接返回json数据。

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.ResponseBody;

import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;

import java.io.IOException;

import java.util.List;
@Controller

public class DMController {

@Resource

private IDMService dmService;

@RequestMapping(value = "/mine",method = RequestMethod.POST)

public @ResponseBody ModelAndView textMine(String qt,ModelAndView m) throws IOException {

List<QueryResult> qrresults=dmService.getQueryResults(qt);//QueryResult是自定义的pojo

m.addObject("queryresults",qrresults);

m.setViewName("page2");

return m;

}

}

利用ModelAndView将Service中的结果值传到page2页面,并将ModelAndView对象返回到ajax。

page2页面

<c:forEach items="${queryresults}" var="queryresults">

<div>

<p>${queryresults.resultTitle}</p>

<p>${queryresults.resultContent}</p>

</div>

</c:forEach>

至此,SpringMVC以页面响应Ajax请求的整个过程也结束,整个过程还需要各位客官仔细理解,然后结合自己的实际需求进行改进。项目中运用到的场景如下图。

参考:

http://www.aichengxu.com/view/38943

SpringMVC响应Ajax请求(@Responsebody注解返回页面)的更多相关文章

  1. SpringMVC 03: 请求和响应的乱码解决 + SpringMVC响应Ajax请求

    请求或响应的中文乱码问题 tomcat9解决了get请求和响应的中文乱码问题,但是没有解决post请求或响应的中文乱码问题 tomcat10解决了get和post请求以及响应的中文乱码问题 考虑到实际 ...

  2. springmvc处理ajax请求

    1.controller将数据封装成json格式返回页面 @RequestMapping("/dataList") public void datalist(CsoftCunsto ...

  3. SpringMVC进行Ajax请求页面显示乱码

    最近在项目的使用过程中发现在springmvc的项目中,使用返回页面的请求方式,数据都能正常显示,但是对于ajax的请求,始终显示乱码. 首先第一种是因为我们在web.xml中配置了spring的字符 ...

  4. AJAX请求时status返回状态明细表(转)

    转自:http://www.cnblogs.com/wangking/p/6530904.html AJAX请求时status返回状态明细表 readyState的五种状态2010-03-04 18: ...

  5. SpringMVC的AJAX请求报406错误

    SpringMVC的AJAX请求报406错误原因有两种:1.jackson包没有引入 2.如果已经引入jackson包了还报406的错误,那么就有可能是请求的url路径是.html结尾,但是返回的数据 ...

  6. AJAX请求时status返回状态明细表

    AJAX请求时status返回状态明细表 readyState的五种状态2010-03-04 18:24对于readyState的五种状态的描述或者说定义,很多Ajax书(英文原版)中大都语焉不详 在 ...

  7. ajax请求正常,返回json格式,后台没问题,浏览器500

    1.使用的是springmvc中的 @ResponseBody 注解   ,后台不报错,.正常走完:以为使用这个注解就可以正常返回json格式的数据:所以一直没有怀疑是注解的问题: 以为是ajax本身 ...

  8. ajax请求、servlet返回json数据

    ajax请求.servlet返回json数据 1.方式一 response.setcontenttype("text/html;charset=utf-8"); response. ...

  9. 解决@ResponseBody注解返回的json中文乱码问题

    1. 简介 主要解决@ResponseBody注解返回的json中文乱码问题. 2.解决方案 2.1mvc加上注解(推荐此方法) 在mvc配置文件中假如下面配置(写在 <mvc:annotati ...

随机推荐

  1. cogs 1396. wwww

    1396. wwww ☆   输入文件:wwww.in   输出文件:wwww.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] 对于一个递归函数w(a,b,c) 如果 ...

  2. [Python] Understand Scope in Python

    Misunderstanding scope can cause problems in your application. Watch this lesson to learn how Python ...

  3. awk依照多个分隔符进行切割

    我们知道awk能够进行类似于cut之类的操作.如一个文件data例如以下 zhc-123|zhang hongchangfirst-99|zhang hongchang-100|zhang 假设我们 ...

  4. P2P进入整顿期,平衡风险和收益之间的矛盾是关键

        毫无疑问,P2P网贷进入了其诞生以来最为关键的整顿期,随着大量提现困难.跑路的P2P平台被曝光之后.行业对P2P网贷的发展也多了几分慎重.少了几分浮躁.只是,P2P网贷所面临的问题正是其它不论 ...

  5. Oracle-02-数据库概述

    一.数据库用途 用于存放数据的软件 当中Application server重要,将数据存在表中每一个表关系就能够反映不同表之间数据的关系,比方淘宝用户注冊.商品买卖等数据存在操作系统的目录中,不便于 ...

  6. colorscheme-如何vim颜色风格

    我们vim默认的风格是黑底的,如果我们想要更换其他的风格,比如字体高亮的颜色.注释的颜色等.这时候我们就需要一个属性了,如下 colorscheme darkblue 这个属性的值,其实是在 /usr ...

  7. POJ 3168 排序+扫描

    题意: 思路: 我们可以把每个矩形拆成四条线 与x轴平行的放在一起 与y轴平行的放在一起 排个序 判一判有没有交 有交 则说明不可扩张 统计一下 就可以了 处理的姿势很重要 姿势不对毁一生 //By ...

  8. javafx image zoom

    public class EffectTest extends Application { private final ImageView imageView = new ImageView(); p ...

  9. 关于vue.js中v-model与表单控件的双向绑定。

    单选框:<input type="checkbox" id="checkbox" v-model="checked"><l ...

  10. Font-Awesome最新版完整使用教程

    何为Font-Awesome Font Awesome gives you scalable vector icons that can instantly be customized - size, ...