首页 > 作文

使用SpringMVC访问Controller接口返回400BadRequest

更新时间:2023-04-06 03:55:27 阅读: 评论:0

访问controller返回400badrequest

问题

springmvc使用自定义类型接收参数时, form提交会返回400 bad request,controller接口里的方法没有得到调用。

@requestmapping(value = "/list.do", method = {requestmethod.get , requestmethod.post})  public string list(order param, 黄忠是谁的手下httprvletrequest request) {    logger.info(jsonobject.fromobject(param).tostring());    integer count = orderrvice.findcount(param);    logger.info(count);    param.trows(count);    list<order> result = orderrvice.findbypage(param);    logger.info(jsonarray.fromobject(result).tostring());    request.tattribute("param", param);    request.tattribute("result", result);    return "order/list";  }
  <form action="<%=bapath%>order/list.do" id="myform" method="post" >    <input type="hidden" name="currentpage" value="${param.currentpage}"/>    <table>      <tr>        <td width="80" align="right">订单状态: </td>        <td>          <lect name="order_status" autowidth="true" style="width:120px;">            <option value="">全部</option>            <c普通话考级:foreach items="${order_status_map}" var="temp">              <option value="${temp.key}" <c:if test="${temp.key == param.order_status}">lected="lected"</c:if>>${temp.value}</option>            </c:foreach>          </lect>        </td>        <td align="right">订单号: </td>        <td>          <input type="text" name="order_no" id="order_no" onfocus="this.value=''" value="${param.order_no}" style="width:140px;"/>        </td>      </tr>      <tr>        <td width="80" align="right">创建时间: </td>        <td><input type="text" class="date" name="createtimestart" value="${param.createtimestart}" style="width:120px;"/></td>        <td align="center">&nbsp;至&nbsp;</td>        <td><input type="text" class="date电影排名" name="createtimeend" value="${param.createtimeend}" style="width:120px;"/></td>        <td><button><span class="icon_find">查询</span></button></td>        <td><button onclick="add();return fal;"><span class="icon_add">添加</span></button></td>      </tr>    </table>  </form>

直接在浏览器地址栏输入<%=bapath%>order/list.do是可以访问的并查询出数据的,我一开始以为是get方法能访问,post不能访问,后来发现,get使用context-type为application/x-www-form-urlencoded时也会访问不了,post使用使用application/json也能访问。

所以,这就需要修改form里的enctype属性为application/json,但是enctype属性只支持下面表格三种,

html form 标签的 enctype 属性

值描述application/x-www-form-urlencoded在发送前编码所有字符(默认)multipart/form-data不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。text/plain空格转换为 “+” 加号,但不对特殊字符编码。

我试了下,text/plain和application/json具有同样的效果。

虽然在form里加上enctype=”text/plain”可以解决接口返回400badrequest的问题,但是有新的问题出现:接口的参数orde薛定谔的猫是什么意思r param接受不到post提交的值,但是将参数直接拼接在url,order param则可以接收到值,order param

springmvc遇到的http400badrequest总结

在搭建springmvc环境,在使用中遇到了多次bad request的连接

下面来总结下

1.参数类型不对,如后台实体类的属性为int,但传来的参数为字符串

2.因为我的粗心三年级日记300字,本来是要通过ajax获得一个json串,但是后台的方法在返回值类型前没有加@requestbody注解

3.传递的参数为日期,spring不知道该以什么格式转换为date类型,解决办法为在实体类的日期属性上加上@datetimeformat(pattern=”yyyy-mm-dd”)注解即可

4.刚遇到的问题,排查了好久终于知道是什么原因了,实体类中有int类型的属性,但是前台传参时传递的样子是这样的”age=”,并没有给一个准确的数字(age=18),所以导致spring在对int型属性进行赋值时无法正确赋值

以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。

本文发布于:2023-04-06 03:55:25,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/12af16080d821f0526d8ae61dc6b40df.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:使用SpringMVC访问Controller接口返回400BadRequest.doc

本文 PDF 下载地址:使用SpringMVC访问Controller接口返回400BadRequest.pdf

下一篇:返回列表
标签:属性   参数   类型   赋值
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图