Plusieurs modelattributes dans un JSP avec Spring
ce que j'essaie d'accomplir c'est d'utiliser un seul formulaire, soumettre plusieurs modelattributes avec Spring et JSP.
avec un je sais comment le faire, la cartographie du modèle avec la balise form:form
.
mais, si je veux obtenir deux modelAttributes dans la méthode controller avec les annotations @ModelAttribute
Comment dois-je le faire? Est-il même possible? Je suis conscient que ce n'est pas si courant, mais je voudrais savoir si c'est possible.
3 réponses
AFAIK, vous ne pouvez lier une forme qu'avec un seul objet. Si vous avez deux classes, alors vous pouvez créer une classe unique qui fait référence à deux autres classes, puis lier avec cette classe.
Yup, je suis d'accord avec nickdos. Btw, n'oubliez pas de mettre ces deux classes nom dans Chemin:
exemple:
<spring:bind path="user.status">
<appfuse:label styleClass="control-label" key="id.user.maritalStatus"/>
<form:input path="user.status" cssClass="form-control" id="status" />
</spring:bind>
il suffit d'ajouter un formulaire JSP imbriqué avec un seul bouton Soumettre exemple voir ci-dessous
<form:form method="POST" modelAttribute="applicationGeneralInformation">
<div class="section2">
<h2>General Informaion</h2>
<form:input type="hidden" path="id" id="id"/>
<label for="app_version">Version</label>: <form:input type="text" id="app_version" path="version"/><br/>
<label for="app_func_desc">Description</label>: <form:input type="text" id="app_func_desc"
path="functionalDescription"/><br/>
<label for="app_sec_func">Functions</label>: <form:input type="text" id="app_sec_func"
path="securityFunctions"/><br/>
</div>
<div class="section2">
<h2>Application Content</h2>
<form:form method="POST" modelAttribute="applicationContent">
<div>
<h3>CIA Rating</h3>
<label for="CIARating">CIA Rating</label>: <form:select type="text" id="CIARating" path="CIARating">
<form:option value="1">1</form:option>
<form:option value="2">2</form:option>
<form:option value="3">3</form:option>
<form:option value="4">4</form:option>
</form:select><br/><br/>
</div>
<div>
<h3>Business Continuity and Disaster Recovery</h3>
<div>
<h4>RTO</h4>
<label for="RTO">RTO</label>: <form:select type="text" id="RTO" path="RTO">
<form:option value="1">< 2<sub>Hrs</sub></form:option>
<form:option value="2">2<sub>Hrs</sub>-4<sub>Hrs</sub></form:option>
<form:option value="3">4<sub>Hrs</sub>-48<sub>Hrs</sub></form:option>
<form:option value="4">> 48<sub>Hrs</sub></form:option>
</form:select><br/>
</div>
<div>
<h4>RPO</h4>
<label for="RPO">RPO</label>: <form:input type="text" id="RPO" path="RPO"/><br/>
</div>
</div>
</form:form>
<input type="submit" value="Submit">
</div>
</form:form>