Spring 控制器以类似于 GET 和 POST 方法的方式工作
Spring controller to work similarly to both GET and POST methods
我的 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";
}
进入页面 "search-result-doctors" 后,当我在 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";
}
由于 GET 请求中的参数值 String LastName、String Hospital、String Specialty、String date1 不可用,我遇到了异常
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
我该如何解决这个问题
提前致谢
实际上你可以只定义一个方法来处理 GET 和 POST
@RequestMapping(value = "/search-result-doctors", method = { RequestMethod.POST, RequestMethod.GET })
如果你在你的一些逻辑的某个地方得到 NPE,只需检查哪些参数是空的。
除了@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) {
结合@StanislavL 给出的方法注释和 NullPointer 检查,应该会给你你想要的
我的 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";
}
进入页面 "search-result-doctors" 后,当我在 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";
}
由于 GET 请求中的参数值 String LastName、String Hospital、String Specialty、String date1 不可用,我遇到了异常
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
我该如何解决这个问题
提前致谢
实际上你可以只定义一个方法来处理 GET 和 POST
@RequestMapping(value = "/search-result-doctors", method = { RequestMethod.POST, RequestMethod.GET })
如果你在你的一些逻辑的某个地方得到 NPE,只需检查哪些参数是空的。
除了@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) {
结合@StanislavL 给出的方法注释和 NullPointer 检查,应该会给你你想要的