提问者:小点点

Spring误差400


你好,请帮忙,

我想列出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个答案

匿名用户

好吧,

问题解决了。

它是关于从jsp传递到控制器的数据。

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

更具体地说艾宾先生在这一页上回答了

这足以更好地寻找它。

问候