1

有人知道如何使用 javax.servlet.Filter 拦截 a4j 请求吗?拦截必须在调用 FacesServlet 之前发生(这就是我计划使用过滤器进行拦截的原因)。

我想知道将在我的 backbean 上执行哪种方法,因为我需要先进行动态控制。

4

1 回答 1

0

您想确定 a4j 请求标记的请求标头。我不做a4j,但如果它工作得很好,你应该能够根据X-Requested-With标题确定它。

String requestedWith = request.getHeader("X-Requested-With");

然后只需在一个if块中确定该值是否是 a4j 请求的预期值并进行相应处理。必要时不要忘记在末尾继续过滤器链。

if (requestedWith.equals(someAjax4jsfSpecificValue)) {
    // Do your job.
}
chain.doFilter(request, response);

要让它运行,只需将它映射到<servlet-name>当前FacesServlet定义的web.xml.

<filter-mapping>
    <filter-name>yourFilter</filter-name>
    <servlet-name>facesServlet</servlet-name>
</filter-mapping>
于 2010-08-25T15:41:33.867 回答