在 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
在 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 请求。