如果我添加Deltaspike,RequestDispatcher#forward是重定向而不是转发

时间:2015-03-20 11:49:50

标签: jsf servlets requestdispatcher deltaspike

我将Web应用程序部署到JBoss EAP6和Glassfish 4中,每件事都按预期工作,直到我将deltaskpike jar添加到项目中。

启用deltaskpike后,servlet中的以下代码:

request.getServletContext().getRequestDispatcher("/faces/page.xhtml").forward(request, response);

将向浏览器发送重定向响应(HTTP:302),而不是在服务器端转发。如果我从应用程序中删除deltaskpike jar,则调度程序转发按预期工作。

如果我转发到FacesServlet以外的任何东西,它会按预期工作。

Deltaspike是否修改了RequestDispatcher的默认行为?

1 个答案:

答案 0 :(得分:3)

我知道了,Deltaspike没有修改请求调度程序。它实际上做的是通过向浏览器发送带有参数的重定向响应,向每个没有JSF请求的JSF请求添加一个window id参数(称为dswid)。

要避免重定向,只需将?dswid = {the_current_value}添加到您的调度程序路径。