## 6.2.2.5 Forms and Fields

#### Form Basics

GSP supports many different tags for aiding in dealing with HTML forms and fields, the most basic of which is the form tag. The `form` tag is a controller/action aware version of the regular HTML form tag. The `url` attribute allows you to specify which controller and action to map to:

    <g:form name="myForm" url="[controller:'book',action:'list']">...</g:form>

In this case we create a form called `myForm` that submits to the `BookController`'s `list` action. Beyond that all of the usual HTML attributes apply.

#### Form Fields

As well as easy construction of forms GSP supports custom tags for dealing with different types of fields including:

- textField - For input fields of type 'text'
- checkBox - For input fields of type 'checkbox'
- radio - For input fields of type 'radio'
- hiddenField - For input fields of type 'hidden'
- select - For dealing with HTML select boxes

Each of these allow GSP expressions as the value:

    <g:textField name="myField" value="${myValue}" />

GSP also contains extended helper versions of the above tags such as radioGroup (for creating groups of radio tags), localeSelect, currencySelect and timeZoneSelect (for selecting locale's, currencies and time zone's respectively).

#### Multiple Submit Buttons

The age old problem of dealing with multiple submit buttons is also handled elegantly with Grails via the actionSubmit tag. It is just like a regular submit, but allows you to specify an alternative action to submit to:

    <g:actionSubmit value="Some update label" action="update" />