有人知道如何使用 javax.servlet.Filter 拦截 a4j 请求吗?拦截必须在调用 FacesServlet 之前发生(这就是我计划使用过滤器进行拦截的原因)。
我想知道将在我的 backbean 上执行哪种方法,因为我需要先进行动态控制。
有人知道如何使用 javax.servlet.Filter 拦截 a4j 请求吗?拦截必须在调用 FacesServlet 之前发生(这就是我计划使用过滤器进行拦截的原因)。
我想知道将在我的 backbean 上执行哪种方法,因为我需要先进行动态控制。
您想确定 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>