一、返回值分类
1、字符串
@Controller
@RequestMapping("test")
public class test{
@RequestMapping("testString")
public String testString(Model model){
User user = new User();
user.setUserName("李四");
user.setAge("29");
user.setDate("2019/12/12");
model.addAttribute("user",user);
return "success";
}
}
<form action="test/updata" method="post">
姓名:<input type="text" name="${user.UserName}"/><br>
年龄:<input type="text" name="${user.age}"/><br>
日期:<input type="text" name="${user.date}"/><br>
<input type="submit" value="提交"/>
</form>
2、void
3、ModelAndView
@Controller
@RequestMapping("test")
public class test{
@RequestMapping("testModelAndView")
public ModelAndView testModelAndView(){
ModelAndView mv = new ModelAndView();
List<Users> users = new ArrayList<>;
User user1 = new User();
user1.setUserName("李四");
user1.setAge("23");
User user2 = new User();
user2.setUserName("王五");
user2.setAge("33");
users.add(user1);
users.add(user2);
mv.addObject("users",users);
mv.setView("success");
return mv;
}
}
<c:forEach items="${users}" value="user">
${user.UserName}
</c:forEach>
二、转发和重定向
转发后浏览器请求还是原来的,转发是在服务器端内部将请求转发给另外一个资源,浏览器只知道发出了请求并得到了响应结果,并不知道在服务器程序内部发生了转发行为
1、forward
重定向后浏览器的地址变成了两个,对浏览器的请求直接作出响应,响应的结果就是告诉浏览器去重新发出对另外一个URL的 访问请求.使用请求转发,既可以转发到jsp,也可以转发到其他的控制器方
@Controller
@RequestMapping("/test")
public class test{
@RequestMapping("/testForward")
public String testForward(){
System.out.println("重定向方法执行了");
return "forward:";
}
}
2、Redirect
@Controller
@RequestMapping("/test")
public class test{
@RequestMapping("/testRedirect")
public String testRedirect(){
System.out.println("重定向方法执行了");
return "redirect:";
}
}
三、ResponseBody响应json数据
<input type="button" value="提交json数据" onclick="testJson()"/>
function testJson(){
var url="/test/testJson";
$.ajax({
url:url,
method:"get",
dataType:"json",
data:{
"id":"12","userName":"hehe"
},
success:function(data){
alert(data);
alert(data.id);
alert(data.userName);
}
})
}
@Controller
@RequestMapping("/test")
public class test{
@RequestMapping("/testJson")
public @ResponseBody User testJson(@RequestBody User user){
user.setId("32");
user.setuserName("lisi");
return user;
}
}