java - 如何从角度发送可选参数并在 Java 控制器中捕获它们?
问题描述
我正在尝试向 Spring Controller 发送“搜索”参数,但不断收到 400 bad request 。我试过@RequestParam("personalNumber")String personalNumber
了,但它仍然不起作用,所以现在我正在尝试获取包装器,你能建议如何将包装器信息发送到 Java 控制器吗?(包装器有其他类的实例)
AngularJs
angular.extend($scope, {
obj:{
personalNumber:"",
firstName:"",
lastName:"",
dateFrom:"",
dateTo:""
},
loadCarLoan: urls.BASE_API + "user/getOnlineApplicationList",
carLoanList:[
],
});
$scope.getCarLoan = function () {
$(".loader").show();
console.log("In the angular");
$http.post($scope.loadCarLoan + $.param($scope.obj))
.success(function (response) {
console.log(response);
if(response.success){
$scope.carLoanList = response;
}
$(".loader").hide();
}).error(function () {
$(".loader").hide();
$scope.carLoanList = [];
})
};
$scope.filter = function () {
$scope.getCarLoan();
};
Java 控制器:
@RequestMapping(value = "user/getOnlineApplicationList", produces = MediaType.APPLICATION_JSON_UTF8_VALUE, method = RequestMethod.POST)
public @ResponseBody String getOnlineApplicationList(HttpSession session,
@RequestBody OnlineApplicationListWrapper wrapper) {
System.out.println("In the Controller Java");
HashMap<String, Object> jsonMap = new HashMap<>();
Car car = wrapper.getCar();
Loan loan = wrapper.getLoan();
CustPaymentPlan cpp = wrapper.getCpp();
NaturalPerson np = wrapper.getPerson();
jsonMap.put("success", "true");
jsonMap.put("car", car);
jsonMap.put("loan", loan);
jsonMap.put("cpp", cpp);
jsonMap.put("np", np);
System.out.println(wrapper.getCar().toString());
System.out.println(wrapper.getLoan().toString());
System.out.println(wrapper.getCpp().toString());
System.out.println(wrapper.getPerson().toString());
System.out.println("========");
System.out.println(gson.toJson(jsonMap));
return gson.toJson(jsonMap);
}
解决方案
你需要改变:
@RequestParam("personalNumber") String personalNumber
至:
@RequestParam(value = "personalNumber", required = false) String personalNumber
required = false
表明该参数可以是可选的。
无需创建包装器
推荐阅读
- vsto - 无法从 Visual Studio 2019 运行 Excel 加载项
- loops - 循环并比较两个foreach循环的所有结果?
- python - 如何使用 argparse 只允许正整数
- java - 如何提高 JSON 解析的性能
- javascript - For ... in 不让步的方法
- ios - 如何在带有 XCode 12.2 的 Swift 中使用 Objective-C 扩展函数?
- javascript - 我的 Discord 机器人不会用我制作的 Embed 回复
- java - 返回相同返回类型的对象会产生语法错误
- powershell - 将递归运行应用于 $com.GetDetailsOf 以获取长度参数
- django - 为什么Django可以处理多个请求?