在这个案例中实现修改功能,点击修改,想获取id,但每次获取的id位null
//修改数据
updateBrand(){
var _this=this;
axios({
method: "post",
url:"http://localhost:8080/brand-case/brand/update",
data:_this.brand,
}).then(function (resp) {
if( resp.data == "success")
{
_this.dialogVisible = false;
// 重新查询数据
_this.selectAll();
// 弹出消息提示
_this.$message({
message: '恭喜你,修改成功',
type: 'success'
});
}
})
public void update(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
BufferedReader br = req.getReader();
String params = br.readLine();
Brand brand = JSON.parseObject(params,Brand.class);
Integer id =(Integer) brand.getId();
brandService.update(brand,id);
resp.getWriter().write("success");
}
//Brand类
public class Brand {
// id 主键
private Integer id;
// 品牌名称
private String brandName;
// 企业名称
private String companyName;
// 排序字段
private Integer ordered;
// 描述信息
private String description;
// 状态:0:禁用 1:启用
private Integer status;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public Integer getOrdered() {
return ordered;
}
public void setOrdered(Integer ordered) {
this.ordered = ordered;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Integer getStatus() {
return status;
}
//逻辑视图
public String getStatusStr(){
if (status == null){
return "未知";
}
return status == 0 ? "禁用":"启用";
}
public void setStatus(Integer status) {
this.status = status;
}
@Override
public String toString() {
return "Brand{" +
"id=" + id +
", brandName='" + brandName + '\'' +
", companyName='" + companyName + '\'' +
", ordered=" + ordered +
", description='" + description + '\'' +
", status=" + status +
'}';
}
}
当点击修改后,这条数据会传回,按理说应该会有id.我直接调用brand.getId(),就直接获得了Id,为什么实际会是Null呢
你可以在前端打印一下:_this.brand,看是不是真的把值传递进来了
第1步:调用更新方法前打印参数 _this.brand看看是不是传到接口中了
第2步:如果传了参数后端没获取到,看看后端获取参数的方法是不是有问题,
我一般都是获取传参时加上@RequestBody注解,你这个接口应该可以直接写
public void update(@RequestBody Brand brand, HttpServletResponse resp) debug看看brand是不是传过来了
后端加个断点看看是否后端获取到