SpringMvc中Controller层forward的路径匹配和参数传递问题

1>forward的路径:

forward有两种路径格式,一种是相对自身这个controller的,另一种是相对项目路径的。

相对自身的路径格式不需要加“/”,比如fun1和fun2是相对的,都在A路径下,所以可以直接forward,打印xxx

@Controller
@RequestMapping("A")
public class A{

@RequestMapping("fun1")
public String fun1(){
return "forward:fun2";
}

@RequestMapping("fun2")
public String fun2(){
system.out.println("xxx");
return "forward:/B/fun3";
}
}
@Controller
@RequestMapping("B")
public class B{

@RequestMapping("fun3")
public String fun3(){
system.out.println("+++");
return "forward:/C/fun4";
}

}

而相对项目的路径 在forward时要加“/”,“/”是代表项目根目录的意思,由于fun2和fun3不是相对关系,直接写return "forward:fun3",请求的路径会变成/A/fun3,而不是/B/fun3。这里打印+++


2>forward的参数传递:

 
 
@Controller
@RequestMapping("C")
public class C{

@RequestMapping("fun4")
public String fun4(){
return "forward:fun5?ugly=marong";
}

@RequestMapping("fun5")
public String fun4(String ugly){
system.out.println(ugly);
}
}

这里控制台直接输出:marong



猜你喜欢

转载自blog.csdn.net/qq_37960007/article/details/79594104