【问题标题】:Will filters be invoked for AJAX requests是否会为 AJAX 请求调用过滤器
【发布时间】:2012-06-03 07:33:50
【问题描述】:
我正在阅读过滤器概念,并且怀疑是否会为 JSF 应用程序中的 AJAX 请求调用过滤器。
过滤器映射如下
<filter-mapping>
<filter-name>ModuleSecurityFilter</filter-name>
<url-pattern>/protected/*</url-pattern>
</filter-mapping>
【问题讨论】:
标签:
ajax
jsf
servlet-filters
【解决方案1】:
是的。只要从您的 JSF 视图提交到与过滤器的url-pattern 匹配的 URL,就会调用过滤器。在您的情况下,如果提交是针对任何“/protected/anything”
使用 JSF1.2,您的所有命令操作(commandbutton/commandlinks)都将被强制 POST 提交表单数据到同一个视图。
假设您当前的视图是 /protected/firstview.jsf ,那么您所有的 <h:commandButton /> , <h:commandLink />, <a4j:commandButton /> <a4j:commandLink /> , <a4j:support action="" /> 都将向同一视图 /protected/firstview.jsf 提交 POST 请求。所以所有的请求都必须经过过滤器。