1.转发
1)return(有视图解析器)
@RequestMapping("/m1/t1")
public String test(Model model){
model.addAttribute("msg","ModelTest1");
return "test";
}
经过视图解析器,含返回值,拼接成完整的访问路径:localhost:8080/项目名/视图解析器前缀/test/视图解析器后缀
如果没有视图解析器,此处就应该直接返回完整的访问路径。
2)forward(有视图解析器)
@RequestMapping("/m1/t1")
public String test(Model model){
model.addAttribute("msg","ModelTest1");
return "forward:/index.jsp";
}
不经过视图解析器,含返回值,完整访问路径:localhost:8080/项目名/jsp的文件路径。
2.重定向
@RequestMapping("/m1/t1")
public String test(Model model){
model.addAttribute("msg","ModelTest1");
return "redirect:/index.jsp";
}
不经过视图解析器,不含返回值,完整访问路径:localhost:8080/项目名/jsp的文件路径。
3.传递和接受参数
1)接受参数
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/t1")
public String test1(String name, Model model){
//接受前端参数
System.out.println("接受到前端的参数为:"+name);
//将返回的结果传递给前端Model
model.addAttribute("msg",name);
//跳转
return "test";
}
结果:
注意:前端输入的参数名要和定义的参数名一样。
如果想要不一样的话:需要在参数前加上@RequestParam(“前端输入的参数名”)
public String test1(@RequestParam("username") String name, Model model){...}
结果:
2)传递对象参数
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int id;
private String name;
private int age;
}
@RequestMapping("/t2")
public String test2(User user){
//接受前端参数
System.out.println("传递的参数为:"+user);
//跳转
return "test";
}
前端输入:
结果:
前端输入的参数名和定义的一样,会自动匹配赋值,并保存在对象当中;不一样的话则会为null。