Java Spring:根据视图重定向

Java Spring:根据视图重定向,java,spring,spring-mvc,Java,Spring,Spring Mvc,我有两个相同的表单(视图A和视图B),它们使用相同的控制器。我想它当我做了后视图A,重定向我到一个网址x,当我做后视图B重定向我到另一个网址(y)。这在这个函数中是可能的吗 @RequestMapping(value = "/panics/closeCase", method = RequestMethod.POST) public String closeCase(@ModelAttribute("closeCaseFrom") CloseCaseFrom closeCaseFrom, Mod

我有两个相同的表单(视图A和视图B),它们使用相同的控制器。我想它当我做了后视图A,重定向我到一个网址x,当我做后视图B重定向我到另一个网址(y)。这在这个函数中是可能的吗

@RequestMapping(value = "/panics/closeCase", method = RequestMethod.POST)
public String closeCase(@ModelAttribute("closeCaseFrom") CloseCaseFrom closeCaseFrom, Model model) {

    CloseCaseFrom sendCloseCaseFrom = new CloseCaseFrom();
    sendCloseCaseFrom.setDetail(closeCaseFrom.getDetail());
    sendCloseCaseFrom.setIdCasePanic(closeCaseFrom.getIdCasePanic());
    sendCloseCaseFrom.setIdPanic(closeCaseFrom.getIdPanic());
    sendCloseCaseFrom.setIdCasePanic(closeCaseFrom.getIdCasePanic());
    sendCloseCaseFrom.setIdStaff(user.getIdStaff());
    sendCloseCaseFrom.setIdUserSession(user.getIdUser());
    sendCloseCaseFrom.setSessionToken(user.getToken());

    panic.mClosePanicCase(sendCloseCaseFrom);


    return "redirect:/alerts";

}

我如何知道哪个视图触发控制器?

您可以在每个视图中添加一个隐藏的输入元素,该元素的名称相同,但值不同。然后在控制器中获取该值,并基于该值重定向

此输入在ViewA中


或者,您可以在输入字段中将实际目的地作为一个值,而不是值a或b,并避免使用if,只需在重定向中插入该目的地。

一种可能性是使用一个url,其中包含一些变量“/panics/closeCase/{source}”,然后使用source知道重定向到哪里
<input type="hidden" name="destination" value="a" />
<input type="hidden" name="destination" value="b" />
@RequestMapping(value = "/panics/closeCase", method = RequestMethod.POST)
public String closeCase(@RequestParam destination, @ModelAttribute("closeCaseFrom") CloseCaseFrom closeCaseFrom, Model model) {

    //..
    if (destination.equals("a")) {
        // a goes to urlx
        return "redirect:/urlx";
    if (destination.equals("b")) { // or just else {
        // b goes to urly
        return "redirect:/urly";

}