【发布时间】:2018-04-04 08:34:21
【问题描述】:
首先是团队更新的模式,其中团队是我的spring mvc应用程序中的一个实体,然后是控制器方法和updateTeam方法实现:
代码如下:
<div class="modal fade" id="update-team-modal_${t.id}" tabindex="-1"
role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5>Modification Equipe</h5>
</div>
<div class="modal-body">
<form enctype="multipart/form-data" method="POST"
action="updateTeam" onsubmit="return validateTeamUpdate();">
<div class="form-group">
<input id="id" type="hidden" name="id" class="form-control"
value="${t.id}">
</div>
<div class="form-group">
<label for="name">Nom </label><span class="req">*</span>
<div class="input-group">
<input type="text" name="name" id="name"
class="form-control-large" value="${t.name }" autocomplete="off"
required="required" />
</div>
</div>
<div class="form-group">
<label for="color">Couleur</label><span class="req">*</span> <input
type="text" id="color" name="color" class="form-control demo"
style="width: 200px;"
data-swatches="#fff|#000|#f00|#0f0|#00f|#ff0|#0ff"
required="required" value="${t.color }">
</div>
<div class="form-group">
<label for="validateur">Validateur</label> <span class="req">*
</span> <select class="form-control-small" id="validateur"
name="validateur" required="required">
<option value="${t.validateur.matricule}">${t.validateur.firstName
} ${t.validateur.lastName }</option>
<c:forEach var="u" items="${users}">
<option value="${u.matricule}">${u.firstName}
${u.lastName}</option>
</c:forEach>
</select>
</div>
<div class="modal-footer">
<button class="btn btn-ok" type="submit"
style="background-color: #C6172E; color: white;">
<i class="glyphicon glyphicon-ok"></i>Editer
</button>
<button class="btn"
style="background-color: #5A6B80; color: white;"
data-dismiss="modal" onclick="this.form.reset();">
<i class="glyphicon glyphicon-remove"></i>Annuler
</button>
</div>
</form>
</div>
</div>
</div>
</div>
@RequestMapping(value = "/updateTeam", method = RequestMethod.POST)
public ModelAndView updateTeam(@RequestParam("id") long id,
@RequestParam("name") String name,
@RequestParam("validateur") String validateur,@RequestParam("color")String color) {
Team team = teamService.getById(id);
User validant = null;
if (!validateur.equals("null"))
validant = userService.getByMatricule(validateur);
team.setName(name);
team.setColor(color);
team.setValidateur(validant);
teamService.updateTeam(team);
return new ModelAndView(new RedirectView("gestionEquipes"));
}
@Override
public void updateTeam(Team t) {
teamRepository.saveAndFlush(t);
}
错误请求 400 Etat HTTP 400 - spring mvc 控制器中不存在必需的字符串参数“颜色”? La requête envoyée par le client était syntaxiquement 不正确。
谁能告诉我如何解决这个问题?
【问题讨论】:
-
在表单提交过程中不知何故颜色字段未传递。请检查表单提交参数并检查颜色字段是否存在。
-
提交前需要手动设置颜色
-
我用这段代码添加了团队,它可以工作。我不知道为什么它对 updateTeam 不起作用
标签: spring-mvc http-request-parameters