【问题标题】:Http status 400 -The request sent by the client was syntactically incorrect. Spring MVCHttp 状态 400 - 客户端发送的请求在语法上不正确。春季MVC
【发布时间】:2017-04-13 12:30:00
【问题描述】:

我在这个问题上花了很多时间,但无法解决。请帮忙!当我从 JSP 提交表单时,我收到此错误。 我的代码:

<form  action="/albums/add" method="post">
<%--<div><input type="file"></div>--%>
<div>Name: <input type="text" name="name" placeholder="Name"></div>
<div>Year: <input type="text" name="year" placeholder="Release year"></div>
<div>
    <select name="singer" id="singer">
    <c:forEach items="${singers}" var="s">
        <option value="${s.id}">${s.name}</option>
    </c:forEach>
</select>
</div>
<input type="submit" >

还有我的控制器代码:

@RequestMapping(value = "", method = RequestMethod.GET)
public String albumsGET(ModelMap map) {
    List<Album> albums = albumDAO.getAllAlbums();
    map.addAttribute("albums", albums);
    return "forward:/Albums.jsp";
}

@RequestMapping(value = "/add", method = RequestMethod.GET)
public String albumsAddGET(ModelMap map) {
    map.put("singers", singerDAO.getAllSingers());
    return "forward:/WEB-INF/Pages/Album/AddAlbum.jsp";
}

@RequestMapping(value = "/add", method = RequestMethod.POST)
public String albumsPOST(@ModelAttribute Album album, HttpServletRequest req) {

        Singer s = singerDAO.getSingerById(Long.valueOf(req.getParameter("singer")));
        s.getAlbumList().add(album);
        album.setSinger(s);
        singerDAO.updateSinger(s);
    return "redirect:/albums";
}

}

【问题讨论】:

  • 检查您的AlbumSinger 实体是否与表单正确匹配。

标签: java spring jsp spring-mvc


【解决方案1】:

可以抛出spring提供的自定义异常,创建带有@ControllerAdvice注解的类并抛出不同HTTP状态码的自定义异常

【讨论】:

    【解决方案2】:

    这是@ModelAttribute的参数映射错误,HTTP返回代码400。

    有一些原因会导致此错误。

    1. Album 对象没有参数名称。
    2. NULL值用于映射Album对象。

    所以,如果您可以检查项目${singers},您应该检查正确替换的值。

    接下来,在Album 对象中,你应该检查getter/setter 方法。

    我可以通过为 Object 设置默认值来解决这个问题(等等。VO)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-22
      • 1970-01-01
      • 1970-01-01
      • 2019-05-14
      • 2017-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多