Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 尝试使用“重定向”重定向页面时的状态404;重定向:“;返回ModelAndView时的前缀_Spring Mvc_Redirect_Post Redirect Get_Modelandview - Fatal编程技术网

Spring mvc 尝试使用“重定向”重定向页面时的状态404;重定向:“;返回ModelAndView时的前缀

Spring mvc 尝试使用“重定向”重定向页面时的状态404;重定向:“;返回ModelAndView时的前缀,spring-mvc,redirect,post-redirect-get,modelandview,Spring Mvc,Redirect,Post Redirect Get,Modelandview,我试图在成功登录后重定向我的请求,涉及两个页面,通常是登录和登录成功 下面是用于登录映射的控制器类 @Controller @SessionAttributes("userObj") @RequestMapping("/user") public class UserController { @RequestMapping(value = "/login", method = RequestMethod.GET) public ModelAndView initLoginView(Mo

我试图在成功登录后重定向我的请求,涉及两个页面,通常是登录登录成功

下面是用于登录映射的控制器类

@Controller
@SessionAttributes("userObj")
@RequestMapping("/user")
public class UserController {

  @RequestMapping(value = "/login", method = RequestMethod.GET)
  public ModelAndView initLoginView(ModelAndView mv) {

    mv.addObject("userObj", new User());
    mv.setViewName("user/login");

    return mv;
  }

  @RequestMapping(value = "/login", method = RequestMethod.POST)
  public ModelAndView loginUser(ModelAndView mv, @ModelAttribute("userObj") User user, BindingResult result, SessionStatus status) {

    System.out.println(user.getUserName());
    System.out.println(user.getPassword());

    mv.addObject("userObj", user);
    mv.setViewName("redirect:/user/loginSuccess");

    return mv;
  }
} 
我得到了一个404,resource not found错误,因此我怀疑我从POST方法返回的ModelAndView对象是罪魁祸首,因此我将返回值更改为

mv.setViewName("user/loginSuccess");
return mv;
来自

mv.setViewName("redirect:/user/loginSuccess");
return mv;
成功加载页面后,我试图实现“post/redirect/get设计模式”,以避免重复表单提交,我看到了大量使用重定向的示例: 在一个模型和视图对象中,我看到了一个404异常问题。有什么需要帮忙的吗。先谢谢你

EDITED:当我这样做返回语句时,mv.setViewName(“user/loginsAccess”) 我在刷新登录页面时收到此警告


我只是设法在web上挖掘了一些资源,幸运的是,服务器向我抛出了一个“警告:找不到URI为的HTTP请求的映射,这使我意识到要使用这种方法

注意:我决定用“注册”功能来解决我的问题,而不是“登录”功能,它仍然是处理POST方法的相同功能,在创建登录功能时,我刚刚找到了一些关于Spring Security的好资源

@Controller
@SessionAttributes("userObj")
@RequestMapping("/user")
public class UserController {

@Resource(name = "userManager")
private UserManager userManager;

@RequestMapping(value = "/register", method = RequestMethod.GET)
public ModelAndView setUpRegisterView(ModelAndView mv) {

    mv.addObject("userObj", new User());
    mv.setViewName("user/register");

    return mv;
}

@RequestMapping(value = "/register", method = RequestMethod.POST)
public ModelAndView registerUser(ModelAndView mv, @ModelAttribute("userObj") User user, BindingResult result, RedirectAttributes ra) {

    userManager.saveUser(user);

    mv = new ModelAndView(new RedirectView("/user/registerSuccess", true));
    ra.addFlashAttribute(user);

    return mv;
}

@RequestMapping(value = "/registerSuccess", method = RequestMethod.GET)
public ModelAndView registerSuccess(ModelAndView mv) {

    mv.setViewName("user/registerSuccess");
    return mv;
 }
}
使用RedirectView类并添加另一个处理程序方法来映射重定向视图,我成功地克服了重复表单提交问题,刷新了“registerSuccess”页面并监视我的数据库,没有出现重复的数据


奇怪的是,我找不到任何使用RedirectView类的示例,说明需要另一个处理程序方法来映射重定向请求

我的404是由以下事实引起的:当返回“/myPage.jsp”视图时,确实需要

但当你重定向到它的时候,你确实做到了

return“重定向:/myPage
jsp

return "/myPage";