我一直在做很多表单,由Spring自动验证和映射,没有任何问题。但这一次,在表单发送的字段之前添加了一个逗号(',')字符。
以下是由Firefox捕获的表单发送的数据(抱歉无法发布图片,但StackOverflow不允许这样做:
识别:yyy
当在控制器(第一行)的方法顶部放置一个断点时:
identifiant =,yyy
这意味着Spring已添加逗号。什么可能导致这类问题?
我的JSP:
<div class="form-group">
<c:set var="identifiantErreur"><form:errors path="identifiant" /></c:set>
<label for="identifiant">Identifiant</label>
<form:input type="text" class="form-control ${not empty identifiantErreur?'erreurBorder':''}" id="identifiant" disabled="${not empty directionForm.identifiant?'true':'false'}" placeholder="Identifiant" path="identifiant" />
<small class="erreurDescription">${identifiantErreur }</small>
</div>
我的控制器:
@PostMapping("/direction/fiche/sauver")
@Transactional
public String postFicheDirectionSauver (@Valid DirectionForm directionForm, BindingResult bindingResult, @ModelAttribute("maPage") HashMap<String,String> maPage, @ModelAttribute("monUtilisateur") HashMap<String,String> monUtilisateur, Model model, RedirectAttributes redAtt) {
System.out.println("Entry in IdentiteController - Ajout/update d'une direction en DB");
System.out.println("Direction reçue: " + directionForm);
....
}
在第一行,directionForm包含带逗号
的字段我的模特:
public class DirectionForm {
private long id;
@NotBlank(message="L'identifiant de la direction ne peut pas être vide")
private String identifiant;
...
public DirectionForm() {}
public final String getIdentifiant() {
return identifiant;
}
public final void setIdentifiant(String identifiant) {
this.identifiant = identifiant;
}
....
}
我完全不解。有人知道发生了什么事吗?
感谢所有人!