程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Spring HTTP Status 400-客户端发送的请求在语法上不正确(添加日期输入时)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Spring http Status 400-客户端发送的请求在语法上不正确(添加日期输入时)?

开发过程中遇到Spring http Status 400-客户端发送的请求在语法上不正确(添加日期输入时)的问题如何解决?下面主要结合日常开发的经验,给出你关于Spring http Status 400-客户端发送的请求在语法上不正确(添加日期输入时)的解决方法建议,希望对你解决Spring http Status 400-客户端发送的请求在语法上不正确(添加日期输入时)有所启发或帮助;

有两个探针:

  • 1参数(IDTaskcategory,IDTaskPriority,IDXXX)与Task字段不匹配。(这不是导致问题的原因,但是它根本无法正常工作。当您更改名称以使其匹配时,问题是您的请求包含Id,但您的Task期望对象。因此,您需要使任务成为期望也是ID,或者您需要注册一些转换器)

  • 2(我认为这是问题所在),我希望 。添加@datetiR_53_11845@eFormat(pattern = "yyyy-MM-dd")到所有日期字段。

我认为一个问题可能是您使用http方法GET。GET请求使用URL查询字符串(后面的内容?)发送参数。但是,URL的总长度在技术上受到浏览器,chach和Web服务器的限制。因此,导致此问题的原因可能是,如果您有很多参数或“长”值(例如长说明),则URL会变长。这是正确的,但不是原因

因此,我建议改用http方法POST。-并且使用POST更好的动词来改变服务器上的请求(http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html)。

解决方法

当我在jsp表单上添加日期字段时,出现此错误,但是如果没有它它将很好地工作。

请求

http://localhost:8080/@R_673_11174@asks/docreatetask?task=hi+there&description=stucked+here&date=2014-02-21&idTaskCategory=1&idTaskPriority=1&idTaskState=1&pending=1&idUser=0&iduser_responsible=0&evaluation=aaaaaa

部分form.jsp

<form method="GET"
    action="${pageContext.request.contextPath}/docreatetask">
    <table>
        <tr>
            <td>Task</td>
            <td><input name="task" type="text" /></td>
        </tr>
        <tr>
            <td>Description</td>
            <td><textarea name="description"></textarea></td>
        </tr>
        <tr>
            <td>Date</td>
            <td><input name="date" type="date"/></td>
        </tr>

部分 Task.java 组件

@Component("task")
public class Task {

    private long id;
    private String task;
    private String description;
    private Date date;
    private Date deadline;
    private Category category;
    private Priority priority;
    private State state;
    private User user;
    private User userResponsible;
    private String evaluation;
    private date TIMESTAMP;
    privatE int pending;

部分 任务控制器

@requestMapping("/createtask")
public String createTask(Model model) {
    List<Category> categories = taskservice.getCategories();
    List<Priority> priorities = taskservice.getPriorities();
    List<State> states = taskservice.getStates();
    List<User> users = taskservice.getUsers();

    model.addAttribute("categories",categories);
    model.addAttribute("priorities",priorities);
    model.addAttribute("states",states);
    model.addAttribute("users",users);

    return "createtask";
}


@requestMapping(value="/docreatetask",method=requestMethod.GET)
public String doCreateTask(Model model,Task task) {
    System.out.println(">TaskController doCreateTask " + task);

    return "taskcreated";
}

知道这可能是什么吗?

提前致谢!


有关该错误的新的额外信息, 我添加了一些验证批注,并且获得了有关该错误的新信息。

大佬总结

以上是大佬教程为你收集整理的Spring HTTP Status 400-客户端发送的请求在语法上不正确(添加日期输入时)全部内容,希望文章能够帮你解决Spring HTTP Status 400-客户端发送的请求在语法上不正确(添加日期输入时)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。