The form:form custom JSP tag is configured to post to the URL '/person/form.html', which based
on the ControllerClassNameHandlerMapping
would map to the form
method on the
PersonController
configured to receive a post request. The form is bound to the 'person' model, which is the
default for the PersonController
. The form:hidden custom JSP tag binds to the Person
's id
and form:input is used to bind 'firstName' and 'lastName'.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> <h1><fmt:message key="person.form.title"/></h1> <c:if test="${not empty statusMessageKey}"> <p><fmt:message key="${statusMessageKey}"/></p> </c:if> <c:url var="url" value="/person/form.html" /> <form:form action="${url}" commandName="person"> <form:hidden path="id" /> <fieldset> <div class="form-row"> <label for="firstName"><fmt:message key="person.form.firstName"/>:</label> <span class="input"><form:input path="firstName" /></span> </div> <div class="form-row"> <label for="lastName"><fmt:message key="person.form.lastName"/>:</label> <span class="input"><form:input path="lastName" /></span> </div> <div class="form-buttons"> <div class="button"><input name="submit" type="submit" value="<fmt:message key="button.save"/>" /></div> </div> </fieldset> </form:form>
The search displays all records in the person table and generates links to edit and delete a record. The fmt:message tag retrieves the local sensitive message based on the message resource key passed in.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> <h1><fmt:message key="person.search.title"/></h1> <table class="search"> <tr> <th><fmt:message key="person.form.firstName"/></th> <th><fmt:message key="person.form.lastName"/></th> </tr> <c:forEach var="person" items="${persons}" varStatus="status"> <tr> <c:set var="personFormId" value="person${status.index}"/> <c:url var="editUrl" value="/person/form.html"> <c:param name="id" value="${person.id}" /> </c:url> <c:url var="deleteUrl" value="/person/delete.html"/> <form id="${personFormId}" action="${deleteUrl}" method="POST"> <input id="id" name="id" type="hidden" value="${person.id}"/> </form> <td>${person.firstName}</td> <td>${person.lastName}</td> <td> <a href='<c:out value="${editUrl}"/>'><fmt:message key="button.edit"/></a> <a href="javascript:document.forms['${personFormId}'].submit();"><fmt:message key="button.delete"/></a> </td> </tr> </c:forEach> </table>