在 Hybris 中重定向到不同页面的正确方法

Proper way to redirect to a different page in Hybris

在 Hybris 中重定向到不同页面的正确方法是什么?我经常使用以下方法:

<a href="<c:url value="/path" />">link</a>

但有些人强调,最好使用单独的方法重定向并使用重定向:

正确的方法是什么?

首先让我告诉你请求重定向与转发之间的基本区别。

Redirect: 服务器向 browser/client 发送一个报头(作为响应),其中包含重定向 URL,然后浏览器发起一个新的请求到重定向 URL.

我们什么时候可以使用重定向?

通常,当数据发布到服务器时,我们应该重定向到获取方法(URL),以防止在浏览器刷新(F5)时重新提交数据。

return "redirect:/redirectToGeturl";

转发: 在服务器内,控制可以转发到目标资源(URL)。这是由容器内部完成的,所以 browser/client 不知道它。

什么时候可以使用forward?

有时,我们想在响应中显示不同的page/resource而不改变原来的URL,然后我们在内部将请求转发给其他控制器。

return "forward:/404";

What is the proper way to redirect to a different page in Hybris?

public static final String REDIRECT_PREFIX = "redirect:";
public static final String FORWARD_PREFIX = "forward:";

这个class级常量定义在AbstractController中。您可以通过将控制器扩展到 AbstractPageController 或 AbstractController 来使用它。

return REDIRECT_PREFIX + "/redirecturl";
return FORWARD_PREFIX + "/404";

< a href="< c:url value="/path" />">link< /a >

这是在 client/browser 端声明 link 的正确方法,它会在用户单击后向 /path 发送 GET 请求。


查找详细信息post here