Spring MVC - 重定向后无法加载视图

时间:2018-05-13 13:27:13

标签: java spring spring-mvc controller

我有一个简单的Controller类,有两个方法:

@Controller
public class RegistrationController {

    private RegistrationService registrationService;

    @Autowired
    public RegistrationController(RegistrationService registrationService){
        this.registrationService = registrationService;
    }

    @RequestMapping(value = "/register", method = RequestMethod.POST, consumes = "application/json; charset=UTF-8")
    public String register(@RequestBody Customer customer) {
        registrationService.registerCustomer(customer);
        return "redirect:login";
    }

    @RequestMapping(value = "/login", method = RequestMethod.GET)
    public String login() {
        System.out.println("Login page");
        return "login";
    }
}

Dispatcher servlet视图解析器配置:

<bean id="viewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
    <property name="prefix">
        <value>/</value>
    </property>
    <property name="suffix">
        <value>.jsp</value>
    </property>
</bean>

当我在/register上使用json正文提交请求时,它正确注册了新用户,然后正确地重定向到第二种方法(在控制台中我可以看到“登录页面”)但是然后浏览器中的视图没有不要改为login.jsp。当我只需键入localhost:8080 / login时,它会正确显示login.jsp页面。我也尝试过返回new ModelAndView("login"),但它也没有用。

1 个答案:

答案 0 :(得分:0)

选项1: 尝试返回&#34;重定向:/ login&#34;而不是&#34;重定向:登录&#34;

选项2:尝试为重定向提供完整的完整路径,理想情况下,您可以返回重定向:/ login,这将重定向到相对于您的Web应用程序根目录的路径 - http://example.com/appName/login