Angular 冬眠和有角的4+;http get-参数值与预期类型不匹配
我在后端遇到了非常奇怪的行为 在我用angular 4编写的前端,我从后端调用方法,该方法将从特定的数据库表中获取特定组织单元的所有员工。另外,我正在调用一个方法,该方法使用来自后端应用程序的选项填充MatSelect 代码: 后端控制器:Angular 冬眠和有角的4+;http get-参数值与预期类型不匹配,angular,hibernate,http-get,angular-httpclient,Angular,Hibernate,Http Get,Angular Httpclient,我在后端遇到了非常奇怪的行为 在我用angular 4编写的前端,我从后端调用方法,该方法将从特定的数据库表中获取特定组织单元的所有员工。另外,我正在调用一个方法,该方法使用来自后端应用程序的选项填充MatSelect 代码: 后端控制器: @RequestMapping(value = "/orgid/{orgid}", produces = "application/json") public Iterable<Employee> getEmployeeByOrgId(@
@RequestMapping(value = "/orgid/{orgid}", produces = "application/json")
public Iterable<Employee> getEmployeeByOrgId(@PathVariable("orgid") String orgid, HttpServletRequest req){
Iterable<Employee> getEmpByOrgId = eDao.findEmployeesByOrgNameId(orgid);
return getEmpByOrgId;
}
前端html:
<mat-select placeholder="Choose it">
<mat-option *ngFor="let org of this.orgUnits" [value]="org.value" (click)="fetchAllEmployeesByOrgId(org)">
{{ org.orgName }}
</mat-option>
{{org.orgName}
单击特定选项时我的url的外观:employees/orgid/166
问题:
我得到java.lang.IllegalArgumentException:参数值[166]与预期类型[java.lang.Integer(n/a)]不匹配
如上所述,我希望在后端使用字符串,并且在url中提供字符串
可能是自定义查询内部的问题还是什么?
任何帮助都很好。问题是@param
arg作为字符串注入查询,因此必须更改方法签名:
findEmployeesByOrgNameId(@Param("orgId") Integer orgId)
如果您将字符串
传递给控制器(您确信可以解析为整数
),则可以将参数转换为整数
,然后调用dao方法:
eDao.findEmployeesByOrgNameId(Integer.valueOf(orgid));
员工表中culomn orgId的类型是什么?它是一个数字。我有点困惑,因为在angular 1.x中,它与字符串传递一起工作,@param arg必须是整数:findEmployeesByOrgNameId(@param(“orgId”)integer orgId)
,并且在控制器中,可以将值解析为整数:eDao.findEmployeesByOrgNameId(integer.valueOf(orgId))代码>是的,成功了。把它作为答案贴出来。谢谢
<mat-select placeholder="Choose it">
<mat-option *ngFor="let org of this.orgUnits" [value]="org.value" (click)="fetchAllEmployeesByOrgId(org)">
{{ org.orgName }}
</mat-option>
findEmployeesByOrgNameId(@Param("orgId") Integer orgId)
eDao.findEmployeesByOrgNameId(Integer.valueOf(orgid));