Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java类布尔值不接受null_Java_Reactjs_Null_Boolean - Fatal编程技术网

Java类布尔值不接受null

Java类布尔值不接受null,java,reactjs,null,boolean,Java,Reactjs,Null,Boolean,我正在使用Java8后端开发react应用程序。我正在尝试将筛选后的表导出到CSV文件。我已经能够成功导出一个仅由字符串数组或单值字符串过滤的表。我在合并布尔型过滤器时遇到了问题,但只有当这些过滤器为空时。如果用户不需要按布尔列筛选表,则该筛选字段的值等于未定义。未定义的值不能通过web服务请求传递。为了解决这个问题,我有一个三元运算符集,如下所示: Boolean===未定义?空:布尔值 但是,我收到空错误 绑定请求元素失败:org.springframework.web.method.ann

我正在使用Java8后端开发react应用程序。我正在尝试将筛选后的表导出到CSV文件。我已经能够成功导出一个仅由字符串数组或单值字符串过滤的表。我在合并布尔型过滤器时遇到了问题,但只有当这些过滤器为空时。如果用户不需要按布尔列筛选表,则该筛选字段的值等于未定义。未定义的值不能通过web服务请求传递。为了解决这个问题,我有一个三元运算符集,如下所示:

Boolean===未定义?空:布尔值

但是,我收到空错误

绑定请求元素失败:org.springframework.web.method.annotation.MethodArgumentTypeMismatchException:未能将类型“java.lang.String”的值转换为所需类型“java.lang.Boolean”;嵌套异常为java.lang.IllegalArgumentException:无效的布尔值[null]

通过对java.lang.string的引用,我猜测null是作为字符串值传递的,但是,当我尝试在我的webservice控制器中解释这一点时,在我可以查看和调试该值之前它失败了

注意:我使用的是Boolean类,而不是基本类型Boolean(小写)。我的理解是Boolean类的值应该为null,但这里的情况似乎不是这样。有办法做到这一点吗

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

webservice控制器(如果value=null,调试器不会走到这一步,但是如果value=true或false,调试器会走到这一步):

@RequestMapping(value=“/filteredCSV.json”)
@应答器
公共Web服务响应过滤器EDCSV(
@RequestParam(value=“status”)ArrayList状态,
@RequestParam(value=“engineerEmail”)ArrayList engineerEmail,
@RequestParam(value=“issues”)布尔问题{
if(issues.equals(“null”)){
问题=新布尔值(空);
}
返回服务.filteredCSV(状态、工程师电子邮件、问题);
} 

是否有办法处理此问题?

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);
} 
@RequestMapping(value=“/filteredCSV.json”)
@应答器
公共Web服务响应过滤器EDCSV(
@RequestParam(value=“status”)ArrayList状态,
@RequestParam(value=“engineerEmail”)ArrayList engineerEmail,
@RequestParam(value=“issues”,required=false)布尔值问题){
返回服务.filteredCSV(状态、工程师电子邮件、问题);
} 

required
设置为false,则
问题
参数将为空

@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);
} 
@RequestMapping(value=“/filteredCSV.json”)
@应答器
公共Web服务响应过滤器EDCSV(
@RequestParam(value=“status”)ArrayList状态,
@RequestParam(value=“engineerEmail”)ArrayList engineerEmail,
@RequestParam(value=“issues”,required=false)布尔值问题){
返回服务.filteredCSV(状态、工程师电子邮件、问题);
} 

谢谢您的回复。但是,这似乎对我不起作用。我仍然收到相同的错误,
org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver HandletTypeMismatch)-绑定请求元素失败:org.springframework.web.method.annotation.MethodArgumentTypeMismatch异常:转换类型的值失败“java.lang.String”转换为所需类型“java.lang.Boolean”;嵌套异常为java.lang.IllegalArgumentException:无效的布尔值[null]
是否设置了issues request参数?是的,我编辑了OP以显示issues值的设置位置。此外,我可以在Chrome Network Requests中看到web请求被发送,undefined值被设置为null。不确定这是否重要。该请求然后被定向到web服务控制器。正如我前面提到的,如果我t发布为true或false筛选器工作,我可以导出,但如果该筛选器未被使用,则其初始值未定义。如果未定义,我将其值设为null。实际物理请求是否包含
发布
参数?是的,据我所知。它从web请求中的值中设置:感谢您的回复。H不过,这似乎对我不起作用。我仍然会遇到相同的错误,
org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver HandletTypeMismatch)-绑定请求元素失败:org.springframework.web.method.annotation.MethodArgumentTypeMismatch异常:未能将“java.lang.String”类型的值转换为所需的值pe'java.lang.Boolean';嵌套异常为java.lang.IllegalArgumentException:无效的布尔值[null]
是否设置了issues request参数?是的,我编辑了OP以显示issues值的设置位置。此外,我可以在Chrome Network Requests中看到web请求被发送,undefined值被设置为null。不确定这是否重要。该请求然后被定向到web服务控制器。正如我前面提到的,如果我t发出true或false该筛选器工作,我可以导出,但如果该筛选器未被使用,则其初始值未定义。如果其未定义,我将其值设为null。实际物理请求是否包含
发出
参数?是的,据我所知。其设置形式为web请求中的值:
@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);
}