I saw this in my generated GSP pages. What does the ? mean?
<g:textField name="name" value="${phoneInstance?.name}" />
It's the "Safe Navigation Operator", which is a Groovy feature that concisely avoids null pointer exceptions. See http://docs.groovy-lang.org/latest/html/documentation/index.html#_safe_navigation_operator
In this case, if phoneInstance
is null, then it doesn't try to get the name
property and cause a NPE - it just sets the value of the field tag to null.