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

时间:2018-04-18 16:37:56

标签: hybris

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

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

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

正确的方法是什么?

1 个答案:

答案 0 :(得分:3)

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

重定向:服务器将一个标头(作为响应)发送回包含重定向网址的浏览器/客户端,然后浏览器启动一个新的重定向网址请求。

我们何时可以使用重定向?

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

return "redirect:/redirectToGeturl";

转发:在服务器中,控件可以转发到目标资源(URL)。这是由容器内部完成的,因此浏览器/客户端不知道它。

我们什么时候可以使用前进?

有时,我们希望在不更改原始URL的情况下显示不同的页面/资源,然后我们在内部将请求转发给其他控制器。

return "forward:/404";
  

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

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

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

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

&LT; a href =“&lt; c:url value =”/ path“/&gt;”&gt; link&lt; / a&gt;

这是在客户端/浏览器端声明链接的正确方法,一旦用户点击它就会向/path发送GET请求。

查找详细信息post here