/
Groovy templates

Groovy templates

Groovy Template is a templating engine for JavaScript. It lets you insert dynamic content into any text through the use of templates. A template contains variables and/or expressions, which get replaced with values when a template is rendered. This is very similar to JSP markup. 

On this page:

Groovy templates in JMWE 

Groovy templates in JMWE are used in:

Groovy templating features

To output the result of a simple Groovy expression, write your Groovy code as <%= some Groovy code %>. For example:

<%= issue.getKey() %>

For single-statement expressions, you can also use the following shortcut:

${issue.getKey()}


To simply execute a Groovy code and not output the result, write your Groovy code as <% some Groovy code %>. For example:

<% log.debug("I was here") %>

You can also output the value of a variable or its properties using $variable or $variable.someProperty. For example:

$currentUser returns an ApplicationUser

$currentUser.name returns the username of the current user

To call a method on the variable, use ${variable.method()}:

${currentUser.getName()} also returns the username of the current user

Groovy template examples

Write the issue key as a comment to the issue:

Issue key: ${issue.get("issuekey")}

Comment an issue based on the priority of the issue:

<% if (issue.get("priority").name == "Critical") { %>
The priority of the issue is <%=issue.get("priority").name %>. So Look out!
<% } %>

To send an Email to the Voters and Watchers of the issue when the issue is resolved, write this as the Subject of the Email (note that we mixed <%= %> and ${} expressions only to show how both are valid):

Hi All,
<% if (issue.assignee)
{%>
The issue <%= issue.key%> has been resolved by <%=issue.assignee.displayName%>
<%}
else
{%>
The issue ${issue.key} has been resolved
<%}%>
Regards,
<%=issue.get("project")?.getLead()?.getDisplayName()%>

(info) Note that you can also "print" to the text: If you would like to print the components of the project:

<% issue.getAvailableOptions("components").each() {
  print "Component: "+ it.name + "\n"
}
%>

Related content

Groovy editor in JMWE
Groovy editor in JMWE
More like this
Close a Story When All Sub-tasks are Closed
Close a Story When All Sub-tasks are Closed
Read with this
Data types in Groovy
Data types in Groovy
Read with this
Groovy tutorial
More like this
Control structures in Groovy
Control structures in Groovy
Read with this