Я работаю над реактивным приложением, имеющим Java-бэкэнд. Реагирующий интерфейс отправляет запрос URL на контроллер веб-службы Java, и в этом контроллере веб-службы определяются типы переменных. Поскольку URL-запрос является строкой, у меня возникают проблемы при работе со нестроковыми значениями. А поскольку Javascript не является языком со строгой типизацией, таким как Java, я не могу определить типы переменных во внешнем интерфейсе.
Пример веб-запроса:
localhost:8080/filteredCSV.json?status=UNDER_ACTIVE_REVIEW,AUTHORIZED_BY_DWB,UNDER_CONSTRUCTION,CONSTRUCTION_COMPLETED&engineerEmail=null&issues=null&date=null
Контроллер веб-службы:
@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,
@RequestParam(value="date", required=false) Local Date date){
return service.filteredCSV(status, engineerEmail, issues, date);
}
Если значения Boolean или Date равны NULL, то значение NULL передается в виде строки, которая вызывает ошибку TypeMismatch, и программа останавливается. У меня, кажется, нет способа изменить строку на нестроковое нулевое значение, как только оно попадет в контроллер веб-службы. Я понимаю, почему это происходит, но я не уверен, есть ли способ обойти это так, чтобы я мог передать null как значение, а не null как строку. Я просто облажался? Разве нет способа справиться с этим?