gpt4 book ai didi

java - Spring MVC 中一种表单有多个 commandName

转载 作者:行者123 更新时间:2023-12-02 13:24:59 24 4
gpt4 key购买 nike

我有一个jsp页面,我将在其中使用来自不同POJO类的许多属性,因此我需要在表单中使用两个commandName。可以在 Controller 中使用多个 @ModelAttribute 那么如果多个 commandName 不起作用又有什么意义呢?

例如我想插入一个信息,名称和函数,名称是Agent类中的属性,函数是Activity类中的属性?我应该怎么办?

Controller

@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>

异常(exception):

Etat HTTP 500 - /WEB-INF/pages/FicheService.jsp (line: 397, column: 64) Attribute qualified names must be unique within an element

第 397 行 ==>

method="post" commandName="activity" commandName="etabl">

最佳答案

一个 springform:form 标签不可能有多个 commandName 属性。

(实现org.springframework.web.servlet.tags.form.FormTag只有一个字段来保存此值)。

最简单的解决方案(确实可行)是使用具有字段的包装器命令对象。

public class CombinedCommand() {
Activity activity;
Etabl etabl;
//Getter and setter
}

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>

关于java - Spring MVC 中一种表单有多个 commandName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16712462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com