4

我目前正在执行客户端重定向,以从遗留 servlet(应用程序的旧部分)到 JSF 页面(应用程序的新部分)。如果可能的话,我宁愿做一个服务器端重定向,这样我就可以将项目放在 JSF 页面可以获取的请求中。(有一组数据需要在遗留 servlet 和 JSF 页面之间“传递”,我不希望将它们放在客户端重定向 URL(作为 URL 参数)中,而是在服务器上执行此操作 -边)。

如果有办法在 servlet(不是 Faces servlet)和 JSF 页面之间进行服务器端重定向,你能告诉我怎么做吗?

4

1 回答 1

3

只需RequestDispatcher#forward()按常规方式调用即可。所有 servlet 也会拦截转发的请求。您只需要确保正向路径与FacesServlet映射匹配。假设您已将其映射到*.xhtml,则应该这样做:

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

/WEB-INF如果您想防止最终用户在不首先调用 servlet 的情况下直接打开该页面,则可以在必要时将其放置在文件夹中。

request.getRequestDispatcher("/WEB-INF/page.xhtml").forward(request, response);
于 2012-05-08T13:15:10.550 回答