springMVC中使用responsbody的小栗子

在springMVC中,有时候不需要用到ModelAndView,又希望能有返回数据。但是简单的返回一个字符串的形式已经不多见了,大多时候需要返回一个Map。于是在方法前面加上@responsebody来返回map转换的json。这里示范一个完整的登录小栗子!


1.从前端到后台打通springMVC spring +任意后端框架。(这里不多赘述,后面是什么不影响前面。)

就写一个最简单的查询将数据从数据库中查找出来,展示到前端页面。

2.使用ajax来发送请求

在页面中引入jquery文件,使用jquery封装的ajax来发送请求。(要使用javascript也可以,自己封装)

<script scr = "文件地址/jquery-1.8.3.min.js"></script>版本不一定一样

写一个ajax

function doPost(){

$.post("请求的controller",{参数1:'',参数2:''...},function(result){

if(result.errMsg){

alert(result.errMsg);

}

});

}

再添加个a标签或按钮触发下就好了 如<a href = "#" onclick = "doPost()"></a>

3.在controller中的方法中组装Map

	@ResponseBody
	@RequestMapping("/qstudent")
	public Map<String,Object> queryStudent(Student stu,HttpServletRequest request,@RequestParam("checkcode")String inputCode){
		Map<String,Object> result = new HashMap<String,Object>();
		HttpSession session = request.getSession();
		String imageCode = (String) session.getAttribute("sRand");
		log.info("imageCode:"+imageCode+",inputCode:"+inputCode);
		if(!imageCode.equals(inputCode)){
			result.put("errMsg", "验证码错误!");
		}else{
			Student student = studentService.query(stu);
			if(student!=null){
				result.put("errMsg", "用户名或密码错误!");
			}else{
				result.put("row",student);
			}
		}
		
		//log.debug("");
		return result;
	}

4.最重要的是导入将Map自动转换成json的jar包

不然的话doPost会报406错误的。

这样就能体验效果了:

这里附上一个小的知识点:

springMVC中前端传来的如userId,userName等字段如果controller的参数是user(这是个java类) 并且其中包含userId,userName的话,springMVC会自动调用对象的set方法将对象给组装好,如果要取单个数据的话,可以使用@RequestParam 参数类型 参数名 的方式取得。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值