SpringMvc响应数据及结果视图实现代码

网友投稿 236 2022-11-27


SpringMvc响应数据及结果视图实现代码

响应数据和结果视图

返回值分类

controller 方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址。

//指定逻辑视图名,经过视图解析器解析为 jsp 物理路径:/WEB-INF/pages/success.jsp

@RequestMapping("/testReturnString")

public String testReturnString() {

System.out.println("AccountController 的 testReturnString 方法执行了。。。。");

return "success"; }

运行结果:

@RequestMapping("/testReturnVoid")

public void testReturnVoid(HttpServletRequest request,HttpServletResponse response)

throws Exception {

}在 controller 方法形参上可以定义 request 和 response,使用 request 或 response 指定响应结果:

1、使用 request 转向页面,如下:

request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request,

response);

2、也可以通过 response 页面重定向:

response.sendRhttp://edirect("testRetrunString") 3、也可以通过 response 指定响应结果,例如响应 json 数据:

response.setCharacterEncoding("utf-8");

response.setContentType("application/json;charset=utf-8");

response.getWriter().write("json 串");

ModelAndView 是 SpringMVC 为我们提供的一个对象,该对象也可以用作控制器方法的返回值。

该对象中有两个方法:

实例代码:

//返回值为ModelAndView

@RequestMapping("/test01")

public ModelAndView test01(){

User user = new User();

// user.setUname("张三");

user.setAge(12);

ModelAndView mv=new ModelAndView();

mv.addObject("user",user);

mv.setViewName("ok");

return mv;

}

ok.jsp代码:

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>

${user.uname}

${user.age}

forward转发

//forward转发方式

@RequestMapping("/test02")

public String test02(){

System.out.println("forward");

return "forward:/WEB-INF/http://pages/ok.jsp";

}

需要注意的是,如果用了 formward:则路径必须写成实际视图 url,不能写逻辑视图。它相当于“request.getRequestDispatcher("url").forward(request,response)”。使用请求转发,既可以转发到 jsp,也可以转发到其他的控制器方法。

Redirect 重定向

@RequestMapping("/test03")

public String test03(){

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 @ResponseBody User test04(@RequestBody User user){

System.out.println("运行");

user.setAge(13);

user.setUsername("张三");

user.setPassword("12346845");

return user;

}

Jsp中的代码:


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringMvc web.xml配置实现原理过程解析
下一篇:Eclipse 2020
相关文章

 发表评论

暂时没有评论,来抢沙发吧~