Spring Cloud Zuul背后的Spring MVC UI服务表单提交

时间:2015-12-04 06:05:13

标签: spring-mvc spring-cloud netflix-zuul

问题是当表单POST发生然后控制器进行重定向时,似乎重定向不知道它在Zuul后面。

形式:

@RequestMapping(value = "/create-something", method = RequestMethod.GET)
public String getForm(Model model, @CookieValue(value = "XSRF-TOKEN", defaultValue = "none", required=true) String token) {

    model.addAttribute("title", "Create New Something");

    model.addAttribute("_csrf", token);

    return "views/create-something";

}

POST:

@RequestMapping(value = "/create-something", method = RequestMethod.POST)
public String postForm(Model model, @ModelAttribute Something something) {

    SomethingClient.createSomething(something);

    return "redirect:" + something.getName() + "/";

}

此设置将导致重定向尝试访问UI服务的内部IP而不是公共Zuul URL。

1 个答案:

答案 0 :(得分:1)

尝试不同的方法后,我终于确定了一个直接的URL。不确定是否有更好的解决方案但这确实有效并解决了上述问题。

新帖子:

@RequestMapping(value = "/create-something", method = RequestMethod.POST)
public String postForm(Model model, @ModelAttribute Something something) {

    SomethingClient.createSomething(something);

    return "redirect:http://domain.com/ui/" + something.getName() + "/";

}

另一个想法是拦截器。这感觉就像增加了大量UI服务的复杂性。