The form tag
In this tutorial, you will learn about Spring form tag.
This tag returns 'form' tag and provides a binding path to inner tags for binding. The command object is placed in the PageContext, due to this ,inner tags can access command object. Other tags in this library are nested tags of the form tag.
Suppose that we have a object known as Employee and it is a JavaBean having properties like firstName and lastName. In our controller, we can use this object as the form backing object and this returns form.jsp. The form.jsp should look like this :
<form:form> <table> <tr> <td>First Name:</td> <td><form:input path="firstName" /></td> </tr> <tr> <td>Last Name:</td> <td><form:input path="lastName" /></td> </tr> <tr> <td colspan="2"> <input type="submit" value="Save Changes" /> </td> </tr> </table> </form:form>
The page controller retrieves firstName and lastName values from the command object placed in the PageContext.
The generated HTML looks like below :
<form method="POST"> <table> <tr> <td>First Name:</td> <td><input name="firstName" type="text" value="Sabeer"/></td> </tr> <tr> <td>Last Name:</td> <td><input name="lastName" type="text" value="Bhatia"/></td> </tr> <tr> <td colspan="2"> <input type="submit" value="Save Changes" /> </td> </tr> </table> </form>
In the previous example, we are assuming that the variable name of the form backing object is 'command'. You can put the form backing object into the model under another name, after that you can bind the form to the named variable as below :
<form:form commandName="employee"> <table> <tr> <td>First Name:</td> <td><form:input path="firstName" /></td> </tr> <tr> <td>Last Name:</td> <td><form:input path="lastName" /></td> </tr> <tr> <td colspan="2"> <input type="submit" value="Save Changes" /> </td> </tr> </table> </form:form>