本文主要是介绍重定向的一些小记录,个人粗略的不成熟的理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在spring mvc的框架下,在Controller里面如果视图返回的是重定向。
在这个web应用里面,我已经建立了login.jsp、one.jsp、two.jsp
我有一些小记录,看如下代码:
(1)
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class MyController {
@RequestMapping(value="/ee",method=RequestMethod.GET)
public String ee(){
return "two";
}
@RequestMapping(value="/login",method=RequestMethod.GET)
public String login(){
return "redirect:/ee";
}
@RequestMapping(value="/one",method=RequestMethod.POST)
public String one(){
return "one";
}
@RequestMapping(value="/two",method=RequestMethod.GET)
public String two(){
return "two";
}
}
在上面的红色代码片段里,如果在地址栏输入的是http://localhost:8084/TestFilter/login
A、如果public String ee()那个方法没有被注释掉,那么页面会跳转到two.jsp这个页面。
B、如果public String ee()那个方法被注释掉了,那么页面请求将会报出404的错误(请求资源路径找不到)
(2)
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class MyController {
@RequestMapping(value="/login.jsp",method=RequestMethod.GET)
public String ee(){
return "two";
}
@RequestMapping(value="/login",method=RequestMethod.GET)
public String login(){
return "redirect:/login.jsp";
}
@RequestMapping(value="/one",method=RequestMethod.POST)
public String one(){
return "one";
}
@RequestMapping(value="/two",method=RequestMethod.GET)
public String two(){
return "two";
}
}
在上面的红色代码片段里,如果在地址栏输入的是http://localhost:8084/TestFilter/login
A、如果public String ee()那个方法被注释掉了,请求不会报错,页面跳转到login.jsp
B、如果public String ee()那个方法被没有被注释掉,页面也不会跳转到two.jsp,还是会跳转到login.jsp
小结一下,意思就是如重定向的页面存在,那么就跳转到相应的页面,不然就再转发一次请求到controller里面寻找,找不到则报错;同时,应该注意到,就算Controller里面的方法名字不一样,但是@RequestMapping(**)都一样,是会报错的,因为请求不知道去匹配哪一个RequestMapping(**)。
这篇关于重定向的一些小记录,个人粗略的不成熟的理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!