Validation SimpleFormController sans commandClass
Bonjour à tous,
J'ai un SimpleFormController avec comme commandClass , un client. Ma jsp affiche les informations de mon clients ainsi qu'une liste de ses contacts.
On a la possibilité de modifié un contact, si click sur edit, un form apparait avec tous les champs de ce contact.
Lorsque le formulaire est "submit", je veux sauvegarder les modifications de mon contact, mais comme le commandClass est un client et non un contact, je ne peux pas utiliser de Validator :(
Une partie de mon controlleur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
@Override
protected Object formBackingObject(HttpServletRequest request) throws Exception
{
setSuccessView("client");
String cliId = request.getParameter("selectedClient");
// setValidator(new ContactValidator());
return clientManager.getObjById(cliId);
}
@Override
protected Map<Object, Object> referenceData(HttpServletRequest request,Object command, Errors error) throws Exception {
Map<Object, Object> dataMap = new HashMap<Object, Object>();
String pg=request.getParameter("mod");
String action=request.getParameter("action");
if("edit".equals(action))
{
Contact cont = contManager.getObjById(Long.valueOf(commContId));
dataMap.put("selectedCont", cont);
dataMap.put("commcontid",commContId );
}
if(pg!=null)
dataMap.put("pg", "client." + pg + ".inc.jsp");
else
dataMap.put("pg", "client.ident.inc.jsp");
return dataMap;
}
@Override
protected ModelAndView onSubmit(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception {
Client cli = (Client)command;
if("contact".equals(request.getParameter("pg")))
{
Contact cont = new Contact();
if(!"".equals(request.getParameter("id").trim()))
{
Client linkedCli = new Client();
linkedCli.setId(request.getParameter("id"));
cont.setCliLink(linkedCli);
}
cont.setComcontDescription(request.getParameter("type"));
cont.setComcontFirstname(request.getParameter("firstname"));
cont.setComcontLastname(request.getParameter("lastname"));
cont.setComcontTel(request.getParameter("tel"));
cont.setComcontMail(request.getParameter("email"));
cont.setComcontActif(1);
if(!"".equals(request.getParameter("commid")))
{
cont.setComcontId(Long.valueOf(request.getParameter("commid")));
contManager.update(cont);
}
else
contManager.saveObj(cont);
clientManager.refreshClient(cli);
}
return showForm(request,response,errors);
} |
Une partie de ma jsp :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
<c:if test="${not empty commcontid}">
<div id="manageArea">
<form:form method="POST" >
PSN : <input type="text" name="id" id="id" value="${selectedCont.cliLink.id}"/><br/>
Type : <input type="text" name="type" id="type" value="${selectedCont.comcontDescription}"/><br/>
Nom : <input type="text" name="firstname" id="firstname" value="${selectedCont.comcontFirstname}"/><br/>
Prénom : <input type="text" name="lastname" id="lastname" value="${selectedCont.comcontLastname}"/><br/>
Courriel prof. <input type="text" name="email" id="email" value="${selectedCont.comcontMail}"/><br/>
Tél prof. <input type="text" name="tel" id="tel" value="${selectedCont.comcontTel}"/><br/>
<input type="hidden" name="commid" value="${selectedCont.comcontId}"/>
<input type="hidden" value="commcont" name="pg"/>
<input type="hidden" value="${cli.id}" name="selCust"/> |
Pourriez-vous me dire comment faire pour pouvoir valider? ou faire ça proprement ?
Merci d'avance