Как я могу перенаправить на определенную часть моей страницы после некоторого процесса в контроллере?

Я хочу, чтобы после того, как мой код выполнил определенные процедуры, перенаправил меня на определенный div моего индекса, я попробовал его таким образом, но страницы нет:

request.getRequestDispatcher("index.jsp#contenedor3").forward(request,response);
0
задан 24.03.2016, 08:50
3 ответа

Форма, в которой я смог решать это, использовала

HttpSesion session=request.getSession ();
session.setAttribute ("NombreParametro", "ValorDeParametro"); response.sendRedirect ("index.jsp#contenedor1");

0
ответ дан 24.11.2019, 14:44

Перенаправление в определенное положение только ты можешь реализовывать ее со стороны клиента. Ты мог бы использовать книжные магазины, как тебя

jquery.scrollTo

, Тогда ты не нуждаешься в том, чтобы определить якорь html, но ты показываешь его id которого div или контроля в твоем pÃ: gina ты хочешь двинуться.

В примере ты увидишь, как div довольно внизу после нескольких параграфов, но $.scroolTo() двинь scroll в положение div, чтобы оставлять видимыми

$(function(){
  
  $.scrollTo("#div1");

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.scrollto/2.1.2/jquery.scrollTo.js"></script>

<p>linea </p>
<p>linea</p>
<p>linea</p>
<p>linea </p>
<p>linea </p>
<p>linea </p>
<p>linea </p>
<p>linea </p>
<p>linea </p>
<p>linea </p>
<p>linea </p>
<p>linea </p>
<p>linea</p>
<p>linea </p>
<p>linea </p>
<p>linea </p>
<p>linea</p>
<p>linea </p>
<p>linea </p>
<p>linea </p>
<p>linea</p>
<p>linea </p>
<p>linea </p>
<p>linea </p>

<div id="div1"> contenido div </div>
0
ответ дан 24.11.2019, 14:44
  • 1
    В действительности, проблема может быть исправленной, если бы он использовался redirect вместо forwarding. –  15.03.2016, 06:39
  • 2
    То, что он перемещает, состоит в том, что с forward я посылаю параметры, которые они, должно быть, показывают в index.jsp, поэтому я не могу использовать redirect – Juan David 15.03.2016, 15:06

Прежде всего, использовав это

request.getRequestDispatcher("index.jsp#contenedor3").forward(request,response);

Ты выполняешь forward, не redirect. Это не позволит тебе находить тебя в положении, которое ты желаешь. Если ты используешь forward, твой лучший выбор будет состоять в том, чтобы делать forward в твой вид JSP прямо, в этом случае index.jsp, и потом загрузив страницу выполнять код язык сценариев JavaScript, который позволял бы тебе переходить с одного сайта на другой в anchor. Ты можешь делать это таким образом.

$(document).ready = () {
    window.location = '#contenedor3'; //asumiendo que tu anchor funciona
};

Ввиду того, что ты используешь forward, ты можешь добавлять признак в твоем request для этого особенного случая, так что только, когда согласятся на страницу посредством обработки этого request. У тебя могло бы быть нечто похожее.

В твоем controller:

request.setAttribute("anchor", "contenedor3");
request.getRequestDispatcher("index.jsp#contenedor3").forward(request,response);

В твоем виде (jsp):

<c:if test="${anchor eq 'contenedor3'}">
    <script type="text/javascript">
        $(document).ready = () {
            window.location = '#contenedor3'; //asumiendo que tu anchor funciona
        };
    </script>
</c:if>

Другой выбор, если он реальный, состоит в том, чтобы использовать redirect к твоей странице и anchor.

0
ответ дан 24.11.2019, 14:44
  • 1
    То, что он перемещает, состоит, в том, что осуществив это, маршрут не находится, это фрагмент кода переключатель (выбор) { я женил 1://ДОБАВЛЯТЬ РЕЕСТРЫ if (DDepartamento.agregarRegistro ()) { request.setAttribute (" mensajeD" MensajeExitoD); } else { request.setAttribute (" mensajeD" MensajeErrorD); } request.getRequestDispatcher (" index.jsp") .forward (request, response); – Juan David 17.03.2016, 17:27

Теги

Похожие вопросы