What is a controller ?
Controller is an interface between model and view ( part of MVC architecture), controller is responsible for communicating view and model.
There are five types of controllers in web dynpro for ABAP.
1. View Controller
A view is nothing but a screen that contain different screen elements like input, table etc
A controller which is responsible for view related logic or programming is called as view controller, a web dynpro component can have multiple views, each view has it`s own controller.
2. Window controller
A window is a container of views, in web dynpro all views must be inserted into a window to display.
Window controller is a controller which is responsible for window related programming.A web dynpro component can have multiple windows, each window has it`s own controller.
This is a global controller for a web dynpro component, the methods, attributes etc declared in component controller can be used by all controllers in a component.
Interface controller is a controller which is responsible for communication between two or more web dynpro components .
This ia an optional controller and this is used to reduce the burden on component controller to improve the performance.
Custom controllers be also used as a configuration controller and will be used for personalization.