- 返回字符串
controller方法返回的字符串可以指定视图名称,根据视图解析器解析为物理视图地址。
/***
* @Description 返回值String
* @Param: []
* @return: java.lang.String
*/
@RequestMapping(path = "/p0")
public String test01() {
System.out.println("我执行了......");
//指定逻辑视图名,经过视图解析器解析为 jsp 物理路径:/WEB-INF/pages/success.jsp
return "success";
}
- 返回值void
当controller返回void的时候,会报404错误,页面找不到。这是因为默认去找以方法名称为视图名称的视图所以找不到报404错误。如果想跳到其它页面我们可以采用转发或者重定向来实现。
/***
* @Description 返回值void
* @Param: []
* @return: java.lang.String
*/
@RequestMapping(path = "/p1")
public void test02(HttpServletRequest request, HttpServletResponse response) throws Exception {
System.out.println("我执行了......");
//请求转发
//request.getRequestDispatcher("/WEB-INF/views/success.jsp").forward(request,response);
//请求转发重定向
response.sendRedirect(request.getContextPath() + "/aaa.jsp");
//response.setCharacterEncoding("UTF-8");
//response.setContentType("text/html;charset=UTF-8");
//直接响应数据
//response.getWriter().println("你好");
return;
}
- 返回值ModelAndView对象
该对象是spring提供的,用来向域对象存值和视图跳转
/***
* @Description 返回值ModelAndView
* @Param: []
* @return: org.springframework.web.servlet.ModelAndView
*/
@RequestMapping(path = "/p2")
public ModelAndView test03() {
System.out.println("我执行了......");
ModelAndView modelAndView = new ModelAndView();
//将nihao存入到域中
modelAndView.addObject("user","nihao");
//设置跳转视图名称
modelAndView.setViewName("success");
return modelAndView;
}
- 返回json数据
这需要使用@ResponseBody注解
/***
* @Description 页面发送一个异步请求到该地址
* @Param: [account]
* @return: void
*/
@RequestMapping(path = "/p5")
@ResponseBody
public Account test06(@RequestBody Account account) {
System.out.println("我执行了......");
account.setName("lisi");
return account;
}
//页面发送的请求
<script>
$(function () {
$("#btn").click(function () {
$.ajax({
type:"post",
url:"${pageContext.request.contextPath}/user/p5",
contentType:"application/json;charset=utf-8",
data:'{"id":1,"name":"test","money":999.0}',
dataType:"json",
success:function(data){
alert(data.id);
alert(data.name);
alert(data.money);
}
});
});
})
</script>
- springmvc本身提供的请求转发和重定向
/***
* @Description 请求转发
* @Param: []
* @return: java.lang.String
*/
@RequestMapping(path = "/p3")
public String test04() {
System.out.println("我执行了......");
//return "forward:/WEB-INF/views/success.jsp";
//转发到这个地址
return "forward:/user/p1";
}
/***
* @Description 请求重定向
* @Param: []
* @return: java.lang.String
*/
@RequestMapping(path = "/p4")
public String test05() {
System.out.println("我执行了......");
//重定向到这个地址
return "redirect:/user/p1";
}