Handler-Return Values返回值
支持的返回值类型:
返回ModelAndView/Model
controller方法中定义ModelAndView对象并返回,对象中可添加model数据、指定view。Model与ModelAndView的传递效果是一样的,且传递是数据不能是引用类型。
重定向时,会把数据拼接到Url后面
@RestController
public class TestController {
@RequestMapping("/test.action")
public String test( int ids){
System.out.println("id:"+ids);
return "this is test";
}
}
INF/jsp/item/editItem.jsp
return "item/editItem";
//重定向到queryItem.action地址,request无法带过去
return "redirect:queryItem.action";
redirect方式相当于“response.sendRedirect()”,转发后浏览器的地址栏变为转发后的地址,因为转发即执行了一个新的request和response。
由于新发起一个request原来的参数在转发时就不能传递到下一个url,如果要传参数可以/item/queryItem.action后边加参数,如下:
/item/queryItem?…&…..
对于model设置的值,重定向会拼接到?key=value…. 版本4.3以后好像改了,记不太清了,你们可以自己去玩一下
//结果转发到editItem.action,request可以带过去
return "forward:editItem.action";
forward方式相当于“request.getRequestDispatcher().forward(request,response)”,转发后浏览器地址栏还是原来的地址。转发并没有执行新的request和response,而是和转发前的请求共用一个request和response。所以转发前请求的参数在转发后仍然可以读取到。
带域的返回
@返回void
返回字符串
@RestController
public class TestController {
@RequestMapping("/test.action")
public String test( int ids){
System.out.println("id:"+ids);
return "this is test";
}
}
逻辑视图名
Redirect重定向
//重定向到queryItem.action地址,request无法带过去
return "redirect:queryItem.action";
redirect方式相当于“response.sendRedirect()”,转发后浏览器的地址栏变为转发后的地址,因为转发即执行了一个新的request和response。
/item/queryItem?…&…..
forward转发
文章如有错误,请您一定指出,感谢之至!
如果你有不同的见解,欢迎留言,或者加我QQ986320270
图片可能来源于网络,如有侵权请告知。
最后:关注一下呗
如果你有不同的见解,欢迎留言,或者加我QQ986320270
最后:关注一下呗
长按二维码识别关注