八.一 与返回Model 和返回ModelMap 一样,也是url 来控制的。
@RequestMapping(value="/login") public void toLogin(Model model){ model.addAttribute("name","两个蝴蝶飞返回void设置值"); }
前台展示:
这个时候,如何在方法中强行用request 域设置转发或者是重定向呢?
八.二 强行转发或者是重定向
@RequestMapping(value="/toLogin") public void toLogin(Model model,HttpServletRequest request,HttpServletResponse response){ model.addAttribute("name","两个蝴蝶飞返回void设置值"); try { request.getRequestDispatcher("/login").forward(request, response); } catch (ServletException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } }
前台展示:
发现,这样操作是不行的。
需要把全部的路径都带上。
@RequestMapping(value="/toLogin") public void toLogin(HttpServletRequest request,HttpServletResponse response){ try { request.setAttribute("name","两个蝴蝶飞返回void设置request值"); request.getRequestDispatcher("/WEB-INF/jsp/user/login.jsp").forward(request, response); } catch (ServletException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } }
而且,注意,这个时候就不能用 Model 来设置值了, 只能用request 来设置值。 完全变成了Servlet+JSP的阶段了。
前台展示:
可以在里面继续写, 上面是转发, 也可以进行重定向, 当然也可以返回JSON 数据。
九. JSON 方法返回值
前面可以看到,可以返回多种形式,如Model,ModelAndView,String,void 等,但它们都是跳转的页面,有相应的视图名称, SpringMVC 中也可以进行 JSON的数据形式传输,那么这个时候,就可以采用其他的形式了。
需要用 @ResponseBody 注解或者是 ResponseEntity
返回的形式是: 自定义的实体对象 或者是ResponseEntity . 这个会在JSON 章节来详细讲解。
也可以返回 void.
十. SpringMVC 中参数的类型
可以简单分为几大类。 只说一下常用的。
十.一 与Web,Servlet 有关的
javax.servlet.ServletRequest 或者是 javax.servlet.http.HttpServletRequest javax.servlet.ServletResponse 或者是 javax.servlet.http.HttpServletResponse javax.servlet.http.HttpSession springmvc 又扩展了两个。 org.springframework.web.context.request.WebRequest 或者是 org.springframework.web.context.request.NativeWebRequest
十.二 读写与打印的
java.io.InputStream或java.io.Reader java.io.OutputStream或java.io.Writer java.security.Principal HttpEntity<?>
十.三 国际化
java.util.Locale
十.四 SpringMVC 封装数据
java.util.Map org.springframework.ui.Model org.springframework.ui.ModelMap
十.五 SpringMVC 提供的其他工具
org.springframework.web.servlet.mvc.support.RedirectAttributes org.springframework.validation.Errors org.springframework.validation.BindingResult org.springframework.web.bind.support.SessionStatus org.springframework.web.util.UriComponentsBuilder
十.六 SpringMVC 参数所用注解
@PathVariable、@@MatrixVariable @RequestParam、@RequestHeader、@RequestBody、@RequestPart
谢谢!!!