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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。