SSM传参时报错400

现在刚开始接触SSM框架,连从jsp页面提交参数到controller都各种报错。首先我们分析一下,浏览器报400的错误,主要有两种形式:
1、bad request意思是“错误的请求";
2、invalid hostname意思是"不存在的域名”。

在这里插入图片描述

于是我在浏览器中的Network找到的我提交的请求,路径没问题,参数也有,直接访问请求路径,代码执行到编译器断点,可是提交请求断点却没有执行。那么就可以排除请求地址的错误了。可是参数也有,为什么会是“错误的请求呢”

后来参考了大神的文献,controller中接收前端传递过来的数据有几种方式,我使用的是用一个bean去接收。换种接收方式试试
在这里插入图片描述

使用@ModelAttribute注解的方式controller接收到了请求,可是参数的值却没有接收到。那么再试试最经典的使用HttpServletRequest接收参数

在这里插入图片描述

请求过来了,参数也接收到了。可是这样的话,要是参数很多,就需要大量的getParameter方法来接收参数。为什么最方便的使用bean来接收会请求失败呢?

从JSP页面到servlet出现 400这是由于前台json参数转换实体类bean时转换失败,大多发生于form表单提交时input标签没填 ""无法转换成其他int 或者date类型

在这里插入图片描述

因为我新增和修改使用的是同一个表单,而新增是productid是没有值的,input默认值为””,解决方法就只需要将int或者double属性转换为对应的包装类Integer、Double就可以了。

public class ProductPo implements Serializable{
	private Integer productid;
	private String productname;
	private String productdescribe;
	private String cover;
	public Integer getProductid() {
		return productid;
	}
	public void setProductid(Integer productid) {
		this.productid = productid;
	}

将PO类里的int改成包装类Integer,再使用bean接收参数。

在这里插入图片描述

参考文献:SSM框架中Controller接收前端传过来的数据的几种方式

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值