A method is disclosed for generating a consistent user interface for an HTML-based application program, without extensive coding of Java Server Pages and other elements. In one approach, business objects each define a user action for the application program, and metadata elements defining parameters for the user actions of the business object. A controller is communicatively coupled to one or more actions, widgets, and panels. A user request is received from a browser and dispatched to one or the actions. Using the actions, one or more parameter values are obtained from the business objects. The business object parameter values are associated with a widget selected from among the one or more widgets. The selected widget is associated with a panel selected from the one or more panels. An HTML user interface page that includes the selected panel is generated. The widgets represent properties of the business objects as HTML elements, automatically generate client-side executable code for performing data validation, and convert values received in users requests into programmatic objects of appropriate data types for use by the application program.