Angular6+antd+java+SpringMVC,表单提交自动接收模型对象?
原谅我WEB小白提个简单的问题
- 前端使用Angular6 + antd 实现,后端使用java
前端为网格组件添加数据时是弹出antd的模态窗体,该模态窗体的内容部分(nzContent)
使用了自定义组件,该自定义组件中有一个input用来给用户输入的下面是该自定义组件的代码(其中只使用了angular的表单功能,没有使用antd的功能):
<form [formGroup]="unit" (ngSubmit)="goSubmit()"> <div>计量单位:<input type="text" formControlName="sid"></div>
<button type="submit">自己的提交</button>
</form>
由于使用了antd,弹出的模态窗体中会在footer部出现两个按钮:
上面表单中的input的name是sid,在java中model类的pulibc属性也是sid
不过java中的model类还有其他public属性,而这里的UI上只有一个sid属性
(这个应该不影响吧)
angular的ts文件中的发送请求的代码是:
goSubmit(){ console.log("下面是angular表单数据:");
console.log(this.unit.value);
var reqUrl = 'http://localhost:8085/femis/unitUpdateByPrimaryKey';
this.http.post(reqUrl,this.unit.value)
.subscribe(
val=>{
console.log("这里是执行完毕的分支!");
},
error=>{
console.log("这里是错误的分支:" + error);
},
()=>{ console.log("这里是anyway的分支!"); }
);
}
点击按钮“提交了啊”,请求成功发送的后端的java中了,下面是java代码:
@PostMapping("/unitUpdateByPrimaryKey") public String updateByPrimaryKey(@ModelAttribute Unit unit) {
System.out.println("进入了请求:/unitUpdateByPrimaryKey");
System.out.println("传入的参数是:" + unit.toString());
return "";
}
之后Eclipse的控制台中打印出:
进入了请求:/unitUpdateByPrimaryKey传入的参数是:Unit [sid=null, serialno=null, status=null, createdate=null, createcomputer=null, createuser=null]
- 我的疑惑:
前端的input上的value没有传递给后端?
整个过程没有报错,但是后端就是没有收到数据,如何解决?
困扰了两天了,thanks for any help!! - 我的联系方式:
409223171@qq.com
QQ同上,微信同上
回答:
哎,真是心凉凉,在segmentfault上发的几个问题都是自己解决的。下面公布正确答案吧:
下面是angular中模板代码:
<form [formGroup]="unit" (submit)="goSubmit()">
<div>计量单位:<input type="text" formControlName="sid"></div>
<button type="submit">自己的提交</button>
</form>
下面是发送请求的代码:
goSubmit(){
console.log("下面是angular表单数据:");
console.log(this.unit.value);
var reqUrl = 'http://localhost:8085/femis/unitUpdateByPrimaryKey';
this.http.post(reqUrl,this.unit.value)
.subscribe(
val=>{
console.log("这里是执行完毕的分支!");
},
error=>{
console.log("这里是错误的分支:" + error);
},
()=>{ console.log("这里是anyway的分支!"); }
);
}
下面是java端响应请求的代码:
@PostMapping("/unitUpdateByPrimaryKey")
public String updateByPrimaryKey(@RequestBody Unit unit) {
System.out.println("进入了请求:/unitUpdateByPrimaryKey");
System.out.println("传入的参数是:" + unit.toString());
return "";
}
- 已经测试通过,2018年9月10日 17:28:35
以上是 Angular6+antd+java+SpringMVC,表单提交自动接收模型对象? 的全部内容, 来源链接: utcz.com/p/175838.html