13.3.2. Other simple controllers
ParameterizableViewController 를 사용하면 AbstractController 와 기능은 같지만 veiw 이름을 Configuration 파일에서 설정할 수 있습니다.
위의 인터페이스를 보면 viewName이라는 멤버 변수가 있고 setter injection 사용하여 설정 파일로 부터 view 이름을 설정 할 수 있다는 것을 알 수 있습니다.
AbstractController와의 관계는 다음과 같습니다. 실제 구현한 코드도 예상 했던 것 만큼이나 매우 간결합니다.
private String viewName;
/**
* Set the name of the view to delegate to.
*/
public void setViewName(String viewName) {
this.viewName = viewName;
}
/**
* Return the name of the view to delegate to.
*/
public String getViewName() {
return viewName;
}
protected void initApplicationContext() {
if (this.viewName == null) {
throw new IllegalArgumentException("viewName is required");
}
}
/**
* Return a ModelAndView object with the specified view name.
*/
protected ModelAndView handleRenderRequestInternal(RenderRequest request, RenderResponse response)
throws Exception {
return new ModelAndView(getViewName());
}
}