我使用forward
代替redirect
(隐藏网址中的参数),问题是我想将片段传递给forward
,因此我的网页会滚动到指定的位置地点。
使用redirect
,这可行:
redirect(controller: "mycontroller", action: "myaction", fragment: "anchor")
但是对于forward
,它不会滚动到锚位置:
forward(controller: "mycontroller", action: "myaction", fragment: "anchor")
我该如何解决这个问题?
答案 0 :(得分:2)
片段与redirect
一起使用的原因是重定向告诉浏览器向指定的URL发出另一个(GET)请求。这使浏览器有机会1.获取新页面,然后2.滚动到相应的锚点。
使用forward
,servlet容器只是告诉另一段代码来处理请求 - 它对浏览器实际上是不可见的,因此浏览器无法在任何地方滚动。这就是fragment
isn't a valid option for forward
。
为了实现这一目标,您必须:
以上任何一项都应在适当的条件下运作;但是,我不确定我们是否有足够的信息来提供更具体的例子。