使用 XPath 过滤器
此组件定义基于 XPath 的消息过滤器。
在内部,这些组件使用MessageFilter,它包装了AbstractXPathMessageSelector.
| 有关更多详细信息,请参阅筛选器。 | 
要使用 XPath 过滤器,您至少必须通过声明xpath-expression元素中引用 XPath 表达式,或者在xpath-expression-ref属性。
如果提供的 XPath 表达式的计算结果为boolean值,则无需其他配置参数。
但是,如果 XPath 表达式的计算结果为String,您应该设置match-value属性,则与评估结果匹配。
match-type有三个选项:
- 
exact:对应于equals上java.lang.String. 底层实现使用StringValueTestXPathMessageSelector
- 
case-insensitive:对应于equals-ignore-case上java.lang.String. 底层实现使用StringValueTestXPathMessageSelector
- 
regex:匹配作 1java.lang.String. 底层实现使用RegexTestXPathMessageSelector
当提供 'regex' 的 'match-type' 值时,使用match-valueattribute 必须是有效的正则表达式。
以下示例显示了xpath-filter元素:
<int-xml:xpath-filter discard-channel=""                      (1)
                      id=""                                   (2)
                      input-channel=""                        (3)
                      match-type="exact"                      (4)
                      match-value=""                          (5)
                      output-channel=""                       (6)
                      throw-exception-on-rejection="false"    (7)
                      xpath-expression-ref="">                (8)
    <int-xml:xpath-expression ... />                          (9)
    <int:poller ... />                                        (10)
</int-xml:xpath-filter>| 1 | 消息通道,您希望发送被拒绝的消息。 自选。 | 
| 2 | 基础 Bean 定义的 ID。 自选。 | 
| 3 | 此终端节点的接收消息通道。 自选。 | 
| 4 | 要在 XPath 评估结果和 match-value.
默认值为exact.
自选。 | 
| 5 | 要与 XPath 评估结果匹配的字符串值。 如果未设置此属性,则 XPath 计算必须生成布尔结果。 自选。 | 
| 6 | 将匹配的邮件调度到的通道。 自选。 | 
| 7 | 默认情况下,此属性设置为 false和被拒绝的消息(那些与过滤条件不匹配的消息)将被静默丢弃。
但是,如果设置为true,则消息拒绝会导致错误情况和异常向上游传播到调用方。
自选。 | 
| 8 | 对要评估的 XPath 表达式实例的引用。 | 
| 9 | 此子元素设置要计算的 XPath 表达式。
如果不包含此元素,则必须将 xpath-expression-ref属性。
此外,您只能包含一个xpath-expression元素。 | 
| 10 | 用于 XPath 过滤器的 Poller。 自选。 |