# bx:groovy

Mittels bx:groovy kann innerhalb eines Template einfach Groovy-Code ausgeführt werden.

## Groovy Code ausführen

```xml
<bx:groovy [includes="{Groovy-Bausteine}"] [nobody]> ... </bx:groovy>
```
Der Parameter `includes` (zur Kompatibilität auch `include` möglich) enthält einen oder mehrere (kommagetrennte) Titel von Groovy-Bausteinen. Diese werden in der angegebenen Reihenfolge zusammengesetzt. Danach wird noch der Groovy-Code im Tag-Body angehangen.

Die Angabe von `nobody` bewirkt, dass der Taginhalt nicht als Groovy-Code angesehen wird. Somit kann man selbst dynamische Sachen (via `includeTag.computeBody()`) auswerten.

### Beispiele

**Nur Code**

```xml
<bx:groovy>
println("Hello, World")
</bx:groovy>
```
**Include und Code**

```xml
<bx:groovy includes="MyLib">
MyLib.doStuff()
</bx:groovy>
```
**Nur Include**

```xml
<bx:groovy includes="MyLib,OtherLib" />
```
**Parameter übergeben und auslesen**

```xml
<bx:groovy name="clipboard:myName" age="25">
def name = includeTag.getStringParameter("name")
def age = includeTag.getIntParameter("age", 0)
 
println("Hello, $name")
if (age < 18) println("no access!")
</bx:groovy>
```
**nobody**

```xml
<bx:groovy includes="CheckRole" role="Admin" nobody>
  <p>Herzlich willkommen in der Administration</p>
</bx:groovy>
 
// CheckRole Groovy (Auszug):
def requestedRole = includeTag.getStringParameter("role")
if (hasRole(requestedRole)) {
  println(includeTag.computeBody())
}
```
Verweise auf diese Seite:

<a href="http://docs.batix.info/pages/viewpage.action?pageId=19300448" target="_blank">Verwendungsmöglichkeiten</a>
<a href="http://docs.batix.info/pages/viewpage.action?pageId=4849700" target="_blank">Verwendungsmöglichkeiten</a>

<p>(2 Verweise)</p>