重定向在Spring控制器中不起作用

问题描述

这里是一个注册字段,注册后应该进入菜单页面,但是转到主页面

@Controller
@RequestMapping("/main")
public class SignInPageController {

    private UserDao userDao;
@Autowired
    public SignInPageController(UserDao userDao){this.userDao = userDao;}

@GetMapping("/menu")
    public String mainMenuPage(){
        return "main/menu";
    }
@GetMapping("/signup")
    public String signUpPage(Model model){
        model.addAttribute("newuser",new User());
        return "main/signup";
    }
@PostMapping("/signup")
    public String signUp(@RequestParam("name") String name,@RequestParam("password") String password,@RequestParam("email") String email,@RequestParam("nativeLanguage") String nativeLanguage){
        User user = new User(name,password,email,nativeLanguage);
        userDao.signUpUser(user);
        return "redirect:/main/menu";
    }

你能告诉我问题出在哪里吗?

解决方法

您似乎在public function render($request,Throwable $e) { if ($request->ajax() && $e instanceof MethodNotAllowedException) { return response()->json([ "Please enter your token" ],405); } return parent::render($request,$e); } 类上缺少@Controller Spring注释。

所以你应该得到这样的东西:

SignInPageController
,

正如我在评论中所说:

您应该从控制器的方法中返回ModelAndView类型,并返回诸如:

return new ModelAndView("redirect:/main/menu",model);

正如您所提到的,您也遇到了重定向错误的问题,请尝试使用已定义的常量来避免输入错误:)

如果您不熟悉Spring,请确保研究RedirectAttributes,添加flashAttributes,并检查Baeldung上的文档是否真的很完整。

祝你好运!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...