У меня есть метод, как показано ниже в моем приложении Spring
@RequestMapping(value = "/search-result-doctors", method = RequestMethod.POST)
public String getDoctorSearchResults(String LastName, String Hospital, String Specialty, String date1, ModelMap model) {
//some logics
return "doctorchannelling/search-result-doctors";
}
после перехода на страницу "поиск-результат-врачи", когда я нажимаю кнопку "Enter" в URL-адресе, он должен оставаться на той же странице. Поскольку это запрос GET, я снова написал тот же метод со значением метода RequestMethod.GET.
@RequestMapping(value = "/search-result-doctors", method = RequestMethod.GET)
public String getDoctorSearchResults(String LastName, String Hospital, String Specialty, String date1, ModelMap model) {
//some logics
return "doctorchannelling/search-result-doctors";
}
из-за недоступности значений параметров String LastName, String Hospital, String Specialty, String date1 в запросе GET Я получаю исключение
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
Как решить эту проблему?
заранее спасибо
В дополнение к тому, что говорит @StanislavL, вы должны аннотировать ваши параметры с помощью @RequestParam(required=false)
, поэтому
public String getDoctorSearchResults(@RequestParam(required=false) String LastName,@RequestParam(required=false) String Hospital, @RequestParam(required=false) String Specialty, @RequestParam(required=false) String date1, ModelMap model) {
в сочетании с аннотацией метода и проверками NullPointer, предоставленными @StanislavL, должны дать вам то, что вы хотите
Фактически вы можете определить только один метод обработки как GET, так и POST
@RequestMapping(value = "/search-result-doctors", method = { RequestMethod.POST, RequestMethod.GET })
Если вы получаете NPE где-то в своей логике, просто проверьте, какие параметры пусты.