2009-05-14 3 views
1

유효성 검사 오류가없는 경우 모델에 일부 데이터를 추가하려고합니다.onBindAndValidate의 error.getModel에 값 입력

errors.getModel().putAll(map); 

내가 하나가 put(key, value)하지만 성공없이 사용하여 값 하나를 넣어 시도 : 나는 모델이 들어 나는 개체를 오류로 액세스 할 수 onBindAndValidate이다,이 작업을 수행 할 수 생각했다.

어떻게해야합니까?

답변

0

나는 processFinish에서 검증 한 후이 작업을 수행 할 수 있습니다 당신은 직접 않고 BindException의 모델에 데이터를 추가 할 수 없습니다

return showPage(request, errors, getCurrentPage(request)) 
     .addAllObjects(map); 
1

. 당신이 할 수없는 이유 : errors.getModel은() 생성하고 새로운지도를 당신이 그것을 호출 할 때마다를 반환하기 때문에

errors.getModel().putAll(map); 

입니다. 따라서 onBindAndValidate 예제에서는 BindException 객체에서 새 모델을 가져 와서 데이터를 모델에 추가 한 다음 버려야합니다. 두 번째 예제에서는 데이터를 모델에 추가 한 다음 반환합니다. 컨트롤러 방법에서 않고 BindException의 모델을 사용하는 것이 같을 것이다

다른 일반적인 사용 : 또한

Map errorModel = errors.getModel(); 
errorModel.putAll(otherMap); 
return new ModelAndView("viewName", errorModel); 

참조 : BindException#getModel()