有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在POSTMAN中将字符串列表的drools规则定义为POST方法

public class QuestionnaireReq {

    private String questionId;
    private List<String> answerText;

    public String getQuestionId() {
        return questionId;
    }
    public void setQuestionId(String questionId) {
        this.questionId = questionId;
    }

    public List<String> getAnswerText() {
        return answerText;
    }
    public void setAnswerText(List<String> answerText) {
        this.answerText = answerText;
    }

}

流口水

规则“质询规则3”

when
questionnaireReq : QuestionnaireReq(questionId=="q2" && $answerText=="Web UI front-end");
questionnaireRes : QuestionnaireRes();
then
questionnaireRes.setNextQuestionId("q3");
end

还有邮递员的要求

{
    "questionId":"q3",
    "answerText":["Web UI front-end","Web Back-end"]

}

共 (1) 个答案

  1. # 1 楼答案

    我想你想问的是,如何更新规则,检查一个值是否在列表中,因为你原来的规则试图做一个==,因为你正在比较一个列表和一个字符串,它永远不会匹配

    在本例中,您需要使用Drools contains操作符,它验证列表是否包含给定元素

    rule "qustionRule_3"
    when
      questionnaireReq : QuestionnaireReq( questionId=="q2",
                                           answerText contains "Web UI front-end")
      questionnaireRes : QuestionnaireRes()
    then
      questionnaireRes.setNextQuestionId("q3");
    end
    

    您可以在Drools官方文档中的contains操作符的"Supported operators in DRL pattern constraints"部分中阅读更多信息