春季错误400

时间:2018-08-07 20:56:02

标签: spring-mvc

您好,请寻求帮助,

我要列出mysql数据库中的所有数据,然后在同一视图中对其进行修改。

我创建控制器:

@Controller
@RequestMapping("/list")
public class MainSpittleController {

@Autowired
private SpittleRepository spittleRepository;

@RequestMapping(method = { RequestMethod.GET, RequestMethod.POST })
public ModelAndView mainListAndModifySpittle(@ModelAttribute("spittle" Spittle spittle) {

    MainSpittleForm mainSpittleForm = new MainSpittleForm();
    List<Spittle> spittleList = spittleRepository.mainSellectAndModify();

    mainSpittleForm.setSpl(spittleList);

    /*view name, model name in jsp, object*/
    return new ModelAndView("mainSpittleView" , "mainView", mainSpittleForm);
}

@RequestMapping(value = "/saveAll", method = RequestMethod.POST)
public String save(@ModelAttribute("mainView") MainSpittleForm mainSpittleForm) {

    List<Spittle> contacts = mainSpittleForm.getSpl();
    if(null != contacts && contacts.size() > 0) {
        for(Spittle pm :contacts) {
            spittleRepository.mainUpdate(pm);
        }
    }
    return ("redirect:/");
}

}

然后我创建一个JSP视图:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Spittle List</title>
</head>
<body>
<div align="center">
    <h2>List</h2>
    <form:form modelAttribute="mainView" action="list/saveAll" method="POST">

        <table BORDER="1" CELLPADDING="3" CELLSPACING="1">
            <tr>
                <th>Id</th>
                <th>Wiadomość</th>
                <th>Termin</th>
            </tr>
            <c:forEach items="${mainView.spl}" var="contact" varStatus="status">
                <tr>

                    <!--  <td align="center">${status.count}</td>-->
                    <td><input value="${contact.id}" name="spl[${status.index}].id" readonly="readonly" /></td>
                    <td><input value="${contact.message}" name="spl[${status.index}].message" /></td>
                    <td><input value="${contact.time}" name="spl[${status.index}].time" /></td>

                </tr>
            </c:forEach>
        </table>
        <br />
        <input type="submit" value="Zapisz" />
    </form:form>

</div>
</body>
</html>

现在,当我按下“ Zapisz”时,我收到了错误消息400

  

说明由于某些东西被认为是客户端错误(例如,格式不正确的请求语法,无效的请求消息框架或欺骗性的请求路由),服务器无法或不会处理请求。

在其他应用程序上,我执行类似操作。显示数据,将它们打包到对象,发送给控制器并更新行。但是现在我错过了一些东西,我也不知道。

对于任何帮助或建议,我将非常感激。

1 个答案:

答案 0 :(得分:0)

好吧

问题解决了。

这与从jsp传递到控制器的数据有关。

如果jsp返回日期,则控制器不知道如何处理日期,因为它接受字符串。

更具体地说,爱宾先生对此page进行了回答

寻找更好的东西就足够了。

致谢