Java Spring:根据视图重定向
我有两个相同的表单(视图A和视图B),它们使用相同的控制器。我想它当我做了后视图A,重定向我到一个网址x,当我做后视图B重定向我到另一个网址(y)。这在这个函数中是可能的吗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
@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";
}