In der gleichen Anfrage an einem Teil, bekomme ich NullPointerException und bei anderen Teil des Codes ist es in Ordnung.Spring @Autowired Bean geben null
@Controller
@RequestMapping(value="/event")
public class EventController {
@Autowired
EventValidator eventValidator;
@Autowired
private EventService eventService;
@InitBinder
private void initBinder(WebDataBinder binder) {
System.out.println(eventValidator.toString()); <<—— NULL HERE
binder.setValidator(eventValidator);
}
@RequestMapping(value="/add_event",method = RequestMethod.POST,produces=MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<AjaxJSONResponse> postAddEventForm(@RequestPart("event") Event event, MultipartHttpServletRequest request,BindingResult result) throws MethodArgumentNotValidException, NoSuchMethodException
{
eventValidator.validate(event, result); <<——- OK HERE
//Check validation errors
if (result.hasErrors()) {
throw new MethodArgumentNotValidException(
new MethodParameter(this.getClass().getDeclaredMethod("postAddEventForm", Event.class, MultipartHttpServletRequest.class, BindingResult.class), 0),
result);
}
Boolean inserted = eventService.addEvent(event);
String contextPath = request.getContextPath();
String redirectURL = StringUtils.isEmpty(contextPath)?"/event":contextPath+"/event";
return new ResponseEntity<AjaxJSONResponse>(new AjaxJSONResponse(inserted,"Event Added Successfully",redirectURL), HttpStatus.OK);
}
}
In derselben Anfrage in initBinder()
Funktion ist eventValidator
NULL und in Funktion postAddEventForm()
eventValidator
wird, um die Instanz zu halten.
Bitte helfen Sie mit.
versuchen, den Umfang der initBinder Methode für die öffentliche ändern. –
Danke Chirdeep. Können Sie mir bitte eine kurze Information geben, warum wir die Öffentlichkeit brauchen? –