[英]many commandName for one form in Spring MVC
I have a page jsp where i will use many attributes from differents POJO Classes so I need to use two commandName in the form. 我有一个页面jsp,我将使用来自不同POJO类的许多属性,所以我需要在表单中使用两个commandName。 It's possible to user multiple @ModelAttribute in the controller so what's the point if multiple commandName is not working ??
可以在控制器中使用多个@ModelAttribute,那么如果多个commandName不工作又有什么意义呢?
For example I want to insert an information, name and function, name is an attribute in class Agent and function is an attribute in class Activity ? 例如,我想插入一个信息,名称和函数,name是类Agent中的一个属性,function是类Activity中的一个属性? what should I do?
我该怎么办?
@RequestMapping(value="/fiche_service",method=RequestMethod.GET)
public ModelAndView Fiche_service(@ModelAttribute Activite activitey,@ModelAttribute Etablissement etabl,ModelMap model) {
Agent ag = new Agent();
return new ModelAndView("FicheService","agent",ag);
}
<form:form
action="${pageContext.request.contextPath}/ajouter_activite"
method="post" commandName="activity" commandName="etabl">
<table id="tabmenu">
<tr>
<td>Fonction :</td>
<td><form:input type="text" class="round default-width-input" path="fonction"/></td>
</tr>
<tr>
<td>Nom d'établissement :</td>
<td><form:input type="text" class="round default-width-input" path="noml"/></td>
</tr>
<tr>
<td>Ville :</td>
<td><form:input type="text" class="round default-width-input" path="villel"/></td>
</tr>
<tr>
<td>Délégation :</td>
<td><form:input type="text" class="round default-width-input" path="cd_reg"</td>
</tr>
<tr>
<td>Date début :</td>
<td><form:input type="text" name="date" class="tcal" value="" path="dateAffect"/></td>
</tr>
<tr>
<td>Date fin :</td>
<td><form:input type="text" name="date" class="tcal" value="" path="dateAffect_etab"/></td>
</tr>
<tr>
<td><input class="button round blue image-right ic-right-arrow"
type="submit" value="Créer" /></td>
<td><input class="button round blue image-right ic-right-arrow"
type="reset" value="Initialiser" /></td>
</tr>
</table>
</form:form>
The Exception: 例外情况:
Etat HTTP 500 - /WEB-INF/pages/FicheService.jsp (line: 397, column: 64) Attribute qualified names must be unique within an element
line 397 ==> 第397行==>
method="post" commandName="activity" commandName="etabl">
It is impossible to have multiple commandName
attributes with a springform:form
tag. 使用
springform:form
标签不可能有多个commandName
属性。
(The implementation org.springframework.web.servlet.tags.form.FormTag
has only a single field to hold this value). (实现
org.springframework.web.servlet.tags.form.FormTag
只有一个字段来保存此值)。
The easiest solution (that defently works) would be using a wrapper command objects, that has to fields. 最简单的解决方案(无效工作)将使用包装器命令对象,它必须包含字段。
public class CombinedCommand() {
Activity activity;
Etabl etabl;
//Getter and setter
}
jsp: JSP:
<form:form
action="${pageContext.request.contextPath}/ajouter_activite"
method="post" commandName="combinedCommand"">
...
<form:input type="text"path="activity.x"/>
...
<form:input type="text"path="etabl.y"/>
...
</form:form>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.