用drools调用方法

时间:2013-01-02 22:20:39

标签: field drools rules

这是drools的初学者问题。我查看了doc和代码示例,但仍然无法弄清楚应该做什么非常简单。

在我的when语句中,我有一个类型为HttpServletRequest的变量$ servletRequest。我知道如何调用不带任何输入参数的getter,例如getCharacterEncoding。即,这个:

when
  ...
  HttpServletRequest( characterEncoding == "xxx" ) from $servletRequest
then

的工作原理。但是,我无法弄清楚如何调用需要输入参数的getter。即,我想从我的请求中访问标题“X-REQUESTED-PAGE”,但以下内容不起作用:

when
  ...
  HttpServletRequest( header["X-REQUESTED-PAGE"] == "xxx" ) from $servletRequest
then

它给了我一个例外:

org.drools.RuntimeDroolsException: Exception executing predicate header["X-REQUESTED-PAGE"] == "xxx"
    at org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:279)
...

我错过了什么?

1 个答案:

答案 0 :(得分:1)

在Drools 5.5中,这应该有效:

when
  ...
  HttpServletRequest( getHeader("X-REQUESTED-PAGE").equals("xxx") ) from $servletRequest
then