SpringMvc响应数据及结果视图实现代码
响应数据和结果视图
返回值分类
controller方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址。
//指定逻辑视图名,经过视图解析器解析为jsp物理路径:/WEB-INF/pages/success.jsp
@RequestMapping("/testReturnString")
publicStringtestReturnString(){
System.out.println("AccountController的testReturnString方法执行了。。。。");
return"success";}
运行结果:
@RequestMapping("/testReturnVoid")
publicvoidtestReturnVoid(HttpServletRequestrequest,HttpServletResponseresponse)
throwsException{
}在controller方法形参上可以定义request和response,使用request或response指定响应结果:
1、使用request转向页面,如下:
request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request,
response);
2、也可以通过response页面重定向:
response.sendRedirect("testRetrunString")3、也可以通过response指定响应结果,例如响应json数据:
response.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
response.getWriter().write("json串");
ModelAndView是SpringMVC为我们提供的一个对象,该对象也可以用作控制器方法的返回值。
该对象中有两个方法:
//返回值为ModelAndView @RequestMapping("/test01") publicModelAndViewtest01(){ Useruser=newUser(); //user.setUname("张三"); user.setAge(12); ModelAndViewmv=newModelAndView(); mv.addObject("user",user); mv.setViewName("ok"); returnmv; } ok.jsp代码: <%@pagecontentType="text/html;charset=UTF-8"language="java"isELIgnored="false"%>Title 入门成功
${user.uname} ${user.age}
forward转发
//forward转发方式 @RequestMapping("/test02") publicStringtest02(){ System.out.println("forward"); return"forward:/WEB-INF/pages/ok.jsp"; }
需要注意的是,如果用了formward:则路径必须写成实际视图url,不能写逻辑视图。它相当于“request.getRequestDispatcher("url").forward(request,response)”。使用请求转发,既可以转发到jsp,也可以转发到其他的控制器方法。
Redirect重定向
@RequestMapping("/test03") publicStringtest03(){ System.out.println("redirect"); return"redirect:/index.jsp"; }
它相当于“response.sendRedirect(url)”。需要注意的是,如果是重定向到jsp页面,则jsp页面不能写在WEB-INF目录中,否则无法找到。
ResponseBody响应json数据
作用:
该注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的
数据如:json,xml等,通过Response响应给客户端
需求:
使用@ResponseBody注解实现将controller方法返回对象转换为json响应给客户端。
前置知识点:
Springmvc默认用MappingJacksonHttpMessageConverter对json数据进行转换,需要加入jackson的包。
@RequestMapping("/test04") public@ResponseBodyUsertest04(@RequestBodyUseruser){ System.out.println("运行"); user.setAge(13); user.setUsername("张三"); user.setPassword("12346845"); returnuser; } Jsp中的代码:$(function(){ $("#open").click(function(){ $.ajax({ url:"${pageContext.request.contextPath}/user/test04", contentType:"application/json;charset=UTF-8", data:'{"username":"hehe","password":"123456","age":12}', type:"post", dataType:"json", success:function(data){ alert(data); alert(data.username); alert(data.password); alert(data.age); } }); }); })
结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。