【发布时间】:2016-01-07 17:14:45
【问题描述】:
每当我想保存我的实体时,它都会抛出此错误:Http 400 错误,“客户端发送的请求在语法上不正确。”
编辑.jsp:
<f:form action = "update.html" modelAttribute="Dolgozo">
<input type="hidden" name = "id" value="${d.dolgozoId}">
<label for="nev">Név: </label>
<input type="text" name = "nev" value="${d.nev}">
</br>
<label for="szulido">Születési idő: </label>
<input type="date" name = "szulido" value="${d.szulido}">
</br>
<label for="anyjaneve">Anyja neve: </label>
<input type="text" name = "anyjaneve" value="${d.anyjaneve}">
</br>
<label for="telefonszam,">Telefonszám: </label>
<input type="text" name = "telefonszam" value="${d.telefonszam}">
</br>
<label for="lakcim">Lakcím: </label>
<input type="text" name = "lakcim" value="${d.lakcim}">
</br>
<input type="submit" value="Módosít">
</f:form>
控制器:
@Controller
public class DolgozoController {
@RequestMapping(value = "index")
public ModelAndView redirect(){
ModelAndView MV = new ModelAndView();
MV.setView("index");
return MV;
}
@RequestMapping(value = "getAll", method = RequestMethod.GET)
public String getAll(Model m){
DolgozoModel model = new DolgozoModel();
m.addAttribute("lst", model.getAll());
return "data";
}
@RequestMapping(value = "edit", method = RequestMethod.GET)
public String edit(@RequestParam(value = "id") int id, Model m){
java.math.BigDecimal bd = new java.math.BigDecimal(String.valueOf(id));
DolgozoModel model = new DolgozoModel();
Dolgozo d = new Dolgozo();
d = model.getDolgozo(bd);
m.addAttribute("d", d );
return "edit";
}
@RequestMapping(value = "update", method = RequestMethod.POST)
public String update(@ModelAttribute(value = "Dolgozo")Dolgozo d){
DolgozoModel model = new DolgozoModel();
Dolgozo dolg = new Dolgozo();
dolg = model.getDolgozo(dolg.getDolgozoId());
dolg.setNev(d.getNev());
dolg.setAnyjaneve(d.getAnyjaneve());
//dolg.setSzulido(d.getSzulido());
dolg.setLakcim(d.getLakcim());
dolg.setTelefonszam(d.getTelefonszam());
model.edit(dolg);
return"redirect:getAll.html";
}
}
我在我的实体上使用“日期”属性,也许这是问题所在?
【问题讨论】:
-
显示模型和来自 F12 的网络跟踪。您很可能必须告诉杰克逊如何反序列化日期
-
它返回以下日期格式:2016.01.06
-
快速测试:删除日期。如果一切正常,那么您需要告诉杰克逊如何反序列化您拥有的日期(通常它需要一个时间戳)。见stackoverflow.com/questions/5591967/…。你应该以调试级别运行你的 spring 应用程序,然后你应该看到它无法处理的内容
-
把你的 Spring 日志转为 DEBUG 看看他们怎么说。
-
更新方法中,日期属性被注释掉(szulido为日期)
标签: java spring spring-mvc