2

我正在将一个 Web 应用程序部署到 JBoss EAP6 和 Glassfish 4 中,一切都按预期工作,直到我将 deltaskpike jars 添加到项目中。

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

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

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

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

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

4

1 回答 1

3

我明白了,Deltaspike 不会修改请求调度程序。它的实际作用是通过向浏览器发送带有参数的重定向响应来为每个没有参数的 JSF 请求添加一个窗口 id 参数(称为 dswid)。

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

于 2015-03-20T12:46:25.463 回答