【发布时间】:2016-05-30 20:08:22
【问题描述】:
我有一个 jsp 页面,页面中间有一个下拉控件。当用户更改下拉菜单的选择时,页面提交给一个 servlet 并转发回同一个页面,其中包含有关要显示的用户选择的详细信息。我希望页面自动导航回下拉菜单,而不是用户必须自己滚动回它。
在检索适当数据的代码之后的 servlet 中,我有:
String forwardTo = "/WEB-INF/jsp/task-create.jsp#taskTypeSelection"
request.getRequestDispatcher(forwardTo).forward(request, response);
我希望 servlet 转到的 jsp 中的链接位于下拉控件上方,如下所示:
<a name="taskTypeSelection" id="taskTypeSelection"></a>
<select class="form-control" id="taskTypeID" name="taskTypeID">
<option value="">Select a task type.</option>
<option...
但是,这不起作用,当 Dispatcher 尝试转发时我收到 404 错误。在将我当前的设置与 RequestDispatcher 一起使用时,有没有办法使这项工作?我认为如果我使用 HttpServletResponse.sendRedirect,这将不是一个问题,但我使用 RequestDispatcher 来增加安全性,因为我已将所有 jsps 放在 WEB-INF 文件夹中,因此 sendRedirect 无法访问(至少那是我的理解。很多这对我来说是新的)。
谢谢!
【问题讨论】:
-
为什么不用纯Javascript或者JQuery的滚动功能呢?我认为它可以比您上面提到的 RequestDispatcher 更容易应用。
-
因为我需要从 servlet 触发滚动/导航操作。有可能这样做吗?我不认为是。
-
无论如何,我认为你必须使用客户端代码来做到这一点。也许这个演示会对你有所帮助:stackoverflow.com/questions/6677035/jquery-scroll-to-element
-
您只需要转发到想要的 jsp 页面,然后在页面加载事件处理程序中,添加代码以滚动到该元素。
-
好的,谢谢,我能够使用这种方法让它工作!如果您想将其发布为答案,我很乐意接受。
标签: javascript java jsp servlets jakarta-ee