Java 如何从服务类重定向到外部url?

Java 如何从服务类重定向到外部url?,java,spring,spring-mvc,Java,Spring,Spring Mvc,在我当前的spring项目中,我添加了几对类controller/service,以通过几个支付服务提供支付选项。这些类中的每一个都有如下结构: public class Redirect { public static String url; public static void redirect() { ... } } 控制器 任何人都可以给我一个关于如何实现这一点的提示?要执行简单的重定向,您可以在控制器层中注入HttpServletRespon

在我当前的spring项目中,我添加了几对类controller/service,以通过几个支付服务提供支付选项。这些类中的每一个都有如下结构:

public class Redirect {
    public static String url;

    public static void redirect() {
        ...
    }
}
控制器


任何人都可以给我一个关于如何实现这一点的提示?

要执行简单的重定向,您可以在控制器层中注入HttpServletResponse:

@RequestMapping(value = "comprar", method = RequestMethod.POST)
public void comprar(String payerId, String guid, HttpServletResponse response) throws Exception {
    this.payment.comprar(payerId, guid);
}
然后简单地使用该对象执行重定向:

response.sendRedirect("http://newUrl");
现在-正如Luiggi在评论中提到的-我不会在服务层中执行重定向本身,而是返回一个布尔值来决定是否需要执行重定向-然后在这里,在控制器层中执行重定向


希望能有帮助

任何重定向都应该在@Controller中完成,而不是在服务中。您应该从服务发送一个通知,可能还有重定向到@Controller的URL,并在那里执行重定向。
@RequestMapping(value = "comprar", method = RequestMethod.POST)
public void comprar(String payerId, String guid, HttpServletResponse response) throws Exception {
    this.payment.comprar(payerId, guid);
}
response.sendRedirect("http://newUrl");