Java类布尔型不接受null

时间:2019-01-07 18:54:08

标签: java reactjs null boolean

我正在使用Java 8后端开发React应用程序。我正在尝试将过滤后的表格导出到CSV文件。我已经能够成功导出仅由字符串数组或单值字符串过滤的表。我在合并为布尔值的过滤器时遇到麻烦,但仅当这些过滤器为空时才可以。如果用户不需要按布尔值列过滤表,则该过滤器字段的值等于undefined。值undefined不能通过Web服务请求传递。为了解决这个问题,我设置了一个三元运算符,如下所示:

except

但是,我收到空错误

Boolean === undefined ? null : BooleanValue

通过对java.lang.string的引用,我猜测null将作为字符串值传递,但是,当我尝试在webservice控制器中解决此问题时,它会失败,然后才能看到并调试该值。

注意:我使用的是Boolean类,而不是基本类型boolean(小写)。我的理解是,布尔类应该能够具有null值,但在这里似乎并非如此。有办法吗?

反应(获取要过滤的值,如果未设置过滤器,则将undefined更改为null):

Failed to bind request element: org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.lang.Boolean'; nested exception is java.lang.IllegalArgumentException: Invalid boolean value [null]

webservice控制器(如果value = null则调试器不会走得太远,但如果value = true或false时调试器就不会这样做):

  webservice.Loans.dashboard.filteredCSV(
  LoanTable.status,
  LoanTable.engineerEmail,
  LoanTable.issues === undefined ? null : LoanTable.issues).then(/*Do Stuff*/)

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:2)

required设置为false,则issues参数将为空。

@RequestMapping(value = "/filteredCSV.json")
@ResponseBody
public WebserviceResponse<?>filteredCSV(
    @RequestParam(value="status") ArrayList status,                             
    @RequestParam(value="engineerEmail") ArrayList engineerEmail,
    @RequestParam(value="issues", required=false) Boolean issues){

     return service.filteredCSV(status, engineerEmail, issues);
}