基于URL从另一个控制器方法调用Spring MVC控制器方法

3

我是这个论坛的新手,已经搜索了我的问题,尽管有类似的问题被提到,但不是我要找的那一个。所以我来提问。

我的应用程序中有一个付款弹窗,可以从应用程序的任何页面调用,在用户在弹窗上提交付款详细信息后,浏览器会重定向到PayPal网站并进行一些检查,在用户确认后返回到我的应用程序。

现在在这个回调方法中,我需要将请求转发到调用弹窗的原始页面。

所以现在我在我的回调方法中有应用程序的URL,但似乎无法将请求转发给它。

例如如下:

mv = new ModelAndView("forward:/secure/music/index");

或者

return "forward:/secure/music/index";

如果我将forward:替换为redirect:,它可以正常工作,但我需要forward它,而不是redirect它(因此发起另一个请求)。

1
/secure/music/index 是另一个控制器的RequestMapping,还是要解析为类似于 /WEB-INF/view/secure/music/index.jsp 的视图? - Costi Ciudatu
3个回答

10
如果想调用另一个控制器的方法,你可以在主控制器中使用@Autowire注入第二个控制器,然后调用所需的方法,并将同样的请求作为参数传递。
希望能对您有所帮助,这种方法对我有效!

1
你应该将调用方法的返回类型设置为ModelAndView,并按以下方式进行调用- return new ModelAndView("forward:/secure/music/index");
这对我有效,也可能对你有用。

0
return new ModelAndView(viewName) 

应该可以工作。但是,如果您需要从模型中获取一些值,则需要在返回ModelAndView之前填充它们并同时返回模型。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接