是否有可能从javascript函数的post调用中执行request.getRequestDispatcher?
问题描述:
我打电话给一个Java控制器“发布”,我发送一个表单,我处理它,并发送一个响应返回与请求中的一些属性,我希望用JavaScript他们可以被处理。这是可能的?是否有可能从javascript函数的post调用中执行request.getRequestDispatcher?
我的控制器:
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter())
{
Respuesta r;
request.setAttribute("MensajeRespuesta", "");
request.setAttribute("StatusRespuesta", "");
ServletInputStream aaaa = request.getInputStream();
if (request.getParameter("btnGuardarDiio") != null && !"".equals(request.getParameter("btnGuardarDiio")))
{
//Code...
request.setAttribute("MensajeRespuesta", r.getMensaje());
request.setAttribute("StatusRespuesta", r.isStatus());
request.setAttribute("StatusGuardado", true);
request.getRequestDispatcher("/pages/maestros/crudAnimal.jsp").forward(request, response);
}
.
.
.
我的脚本在JSP:
<script>
$('#myFormSubmit').click(function(e){
$.post('crudAnimal?btnGuardarDiio=eliminar', $('#formGuardarDIIO').serialize(),
function(responseText,respuesta){
if(respuesta = "success"){
// What do I have to do so that the "response" of the controller redirects to the page and can receive the attributes?
}
});
});
</script>
谢谢!
答
在JavaScript客户端上,您将无法访问在服务器端设置的任何请求/响应属性。这属于服务器,不属于任何http响应负载。
但是,您的文章似乎表明您正在编写一个jsp页面上的JavaScript代码。如果这个jsp输出正在被每个请求重新生成,那么你可以使用它。通过jsp上的java代码(这是处理的服务器端)访问请求属性,以便将生成的js代码发送回客户端,包含您想要的内容。
here你有一些关于jsps如何工作的基本文档。如果你想了解它是如何工作的,我建议阅读。