Как получить атрибут в JSP из сервлета? - PullRequest
0 голосов
/ 14 мая 2019

Я хочу получить атрибут запроса на моей странице JSP после выполнения действия. В моем doPost настройка выглядит так:

String operation = request.getParameter("operation");

if(operation.equals("someAction")) {
  //Do something
} else if (operation.equals("otherAction")) {
  if (someParameter != null){
   //Doing a for loop
   //When loop is finished (so outside for loop)
      request.setAttribute("msg", "Attribute message");
      request.getSession().setAttribute("msg2","Session message");       
      request.getRequestDispatcher("/Absolute/path/Final.jsp").forward(request, response);
  }
}

Этот код не дает мне никакого сообщения после завершения метода, НО, если я обновляю страницу внезапно, появляется сообщение сеанса. Я хочу, чтобы сообщение появилось немедленно, поэтому req.setAttribute похоже на то, что я хочу. Я добавил абсолютный путь, потому что с относительным, программа вошла в бесконечный цикл.

Соответствующие части моего JSP:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

<p>
    Message from request: <b><%= request.getAttribute("msg") %></b>
    <br />
    Message from session: <b><%= session.getAttribute("msg2") %></b> //<---This is the only one that works (after refresh)
    <br />
    Message from EL: <b>${msg2}</b>
    <br />     
    Message from EL: <b>${msg3}</b>

</p>

Это мой код jQuery:

$.ajax({
   type: "POST",
   url: "http://localhost:8080/MaJSPProject/MainServlet/*",
   dataType: 'JSON',
   data: {pTableData:JSON.stringify(TableData), operation:"submitLFoodTable", dropdownField: document.getElementById('dropdownField').value},
   success: function(msg){
       // return value stored in msg variable
       console.log(msg);
   }

});

Что мне не хватает?

...