Contents xi
Getting Started with JSF ����������������������������������������������������������������������������������������������������������� 267
Life Cycle of a JSF Application �������������������������������������������������������������������������������������������������� 277
Phase 1: Restore View ��������������������������������������������������������������������������������������������������������������������������������������� 278
Phase 2: Apply Request Values �������������������������������������������������������������������������������������������������������������������������� 278
Phase 3: Process Validation ������������������������������������������������������������������������������������������������������������������������������� 278
Phase 4: Update Model ������������������������������������������������������������������������������������������������������������������������������������� 278
Phase 5: Invoke Application ������������������������������������������������������������������������������������������������������������������������������� 279
Phase 6: Render Response �������������������������������������������������������������������������������������������������������������������������������� 279
Managed Beans ������������������������������������������������������������������������������������������������������������������������� 281
Facelets ������������������������������������������������������������������������������������������������������������������������������������� 282
Templating with Facelets ����������������������������������������������������������������������������������������������������������������������������������� 282
Building the Bookstore Application Using JSF 2 ����������������������������������������������������������������������� 288
Integrating JSF with Spring Framework ������������������������������������������������������������������������������������������������������������ 290
Accessing a Database from the Web Layer via Spring JDBCTemplate �������������������������������������������������������������� 291
Developing Templates ��������������������������������������������������������������������������������������������������������������������������������������� 293
Developing the User Interface Using UI Components and JSF EL ��������������������������������������������������������������������� 294
Summary ����������������������������������������������������������������������������������������������������������������������������������� 298
■ Chapter 7: Rapid Web Development with Grails ������������������������������������������������������������ 299
Grails Features �������������������������������������������������������������������������������������������������������������������������� 299
Convention over Configuration �������������������������������������������������������������������������������������������������������������������������� 300
Scaffolding �������������������������������������������������������������������������������������������������������������������������������������������������������� 300
Object-Relational Mapping �������������������������������������������������������������������������������������������������������������������������������� 300
Plug-Ins ������������������������������������������������������������������������������������������������������������������������������������������������������������� 301
Unit Testing �������������������������������������������������������������������������������������������������������������������������������������������������������� 301
Integrated Open Source ������������������������������������������������������������������������������������������������������������������������������������� 301
Installing Grails �������������������������������������������������������������������������������������������������������������������������� 302
Hello World Application�������������������������������������������������������������������������������������������������������������� 302
Bookstore Application ��������������������������������������������������������������������������������������������������������������� 305
Creating the Bookstore Application ������������������������������������������������������������������������������������������������������������������� 305
Running the Application ������������������������������������������������������������������������������������������������������������������������������������� 312
Creating the Controller �������������������������������������������������������������������������������������������������������������������������������������� 314