Я хочу получить атрибут запроса на моей странице 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);
}
});
Что мне не хватает?