0

试图做一些应该很容易的事情......我使用 Spring MVC 3,我想将调用从另一个控制器内部重定向到一个控制器......例如:

@Controller
@SessionAttributes
public class UserFormController {
@Autowired
private UserService userService;
@RequestMapping(value = "/method1", method = RequestMethod.GET)
public ModelAndView redirectFormPage() {
//redirect to controller2 here, 
//pointing to a method inside it, without going to any url first
}

试图用modelandview做到这一点,但在我看来,所有解决方案都必须先通过一个url,然后我才能重定向到控制器。

感谢所有的帮助!

=============== 更多信息 =========== 流程是这样的:controller1 上的 methodA 被调用...做一些事情...然后想要将用户重定向到一个 listPage... 这个页面有一个对象列表,controller2 上的方法 B 能够加载并将其发送到这个 listPage。我想要实现的是:总是有人需要获取此页面,我将在此控制器 2 上调用此方法并加载它。

4

3 回答 3

2

你可以做

public String redirectFormPage() {
    return "redirect:/url/controller2";
}
于 2013-04-30T09:32:20.573 回答
1

我不知道你为什么要这样做,但这可能有效:

@Controller
@SessionAttributes
public class UserFormController {
@Autowired
private UserService userService;

@Autowired
private Controller2 controller2;

@RequestMapping(value = "/method1", method = RequestMethod.GET)
public ModelAndView redirectFormPage() {
 return controller2.redirectMethod();
}

只需注入 Controller2 并调用所需的方法

于 2013-04-30T09:37:02.553 回答
0

好问题。我喜欢使用 struts 重定向操作结果类型来避免将下一个视图的知识放入处理已发布表单的操作中。

例如,类 like 的 action 方法UpdateContactInfoAction将 returncontactInfoSaved而不是为下一个视图准备数据并返回gotoShippingOptionsPage。流程中的下一步是选择运输选项的知识仅在 struts 配置中。

任何人都知道如何使用 Spring MVC 做到这一点?

于 2014-05-28T15:07:34.533 回答