起始設定及存取變數

此範例指出您可以如何起始設定及存取規則集、規則區塊或規則變數。

您可以在規則集、規則區塊或規則層次定義變數。必須先使用起始設定表示式來起始設定變數,才能存取它。下列表示式會起始設定兩個變數,其名稱分別是 hostsList 及 hostsString:
<variable name="hostsList" dataType="java.util.ArrayList">
  <varInitializer expressionLanguage="java">
    return new ArrayList();
  </varInitializer>
</variable>
<variable name="hostsString" dataType="java.lang.String">
  <varInitializer expressionLanguage="java">
    return new String();
  </varInitializer>
</variable>
可以透過表示式存取所有變數。下列範例顯示如何在規則回應動作內,透過表示式存取在前述範例中起始設定的 hostsList 及 hostsString 變數。在此範例中,會修改 hostsList,並且會為 hostsString 給定新值。
<onNextEvent>
	<action expressionLanguage="java">
	  String hostname = act_event.getStringAttribute("hostname");
    ArrayList hostsList = (ArrayList)act_lib.getVariable("hostsList");
    hostsList.add(hostname);
    String hostsString = act_lib.getStringVariable("hostsString");
    String newHostString = hostsString + ", " + hostname);
    act_lib.setStringVariable("hostsString", newHostsString);
	</action>
</onNextEvent>