Contents ix
■ Chapter 3: Best Practices in Java EE Web Development ����������������������������������������������� 105
Best-Practice Solutions: Using EL and JSTL ����������������������������������������������������������������������������� 107
Expression Language ���������������������������������������������������������������������������������������������������������������������������������������� 109
JSTL ������������������������������������������������������������������������������������������������������������������������������������������������������������������� 128
Best-Practice Solutions: Using Patterns ������������������������������������������������������������������������������������ 146
Intercepting Filter ���������������������������������������������������������������������������������������������������������������������������������������������� 147
Front Controller �������������������������������������������������������������������������������������������������������������������������������������������������� 149
View Helper ������������������������������������������������������������������������������������������������������������������������������������������������������� 151
Composite View ������������������������������������������������������������������������������������������������������������������������������������������������� 152
Dispatcher View ������������������������������������������������������������������������������������������������������������������������������������������������� 153
Service to Worker ���������������������������������������������������������������������������������������������������������������������������������������������� 155
Java Web Frameworks �������������������������������������������������������������������������������������������������������������� 158
Why Use a Framework? ������������������������������������������������������������������������������������������������������������������������������������� 159
Summary ���������������������������������������������������������������������������������������������������������������������������������� 160
■ Chapter 4: Building a Web Application Using Struts 2 �������������������������������������������������� 161
Struts 2 Framework Overview �������������������������������������������������������������������������������������������������� 161
Action ���������������������������������������������������������������������������������������������������������������������������������������� 164
Action Interface ������������������������������������������������������������������������������������������������������������������������������������������������� 165
ActionSupport Class ������������������������������������������������������������������������������������������������������������������������������������������ 166
Interceptors ������������������������������������������������������������������������������������������������������������������������������ 167
ValueStack and OGNL ��������������������������������������������������������������������������������������������������������������� 168
ResultType and Result ��������������������������������������������������������������������������������������������������������������� 168
Struts 2 Tags ���������������������������������������������������������������������������������������������������������������������������� 169
Getting Started with Struts 2 ����������������������������������������������������������������������������������������������������� 169
Bookstore Web Application �������������������������������������������������������������������������������������������������������� 183
The Login Functionality ������������������������������������������������������������������������������������������������������������������������������������ 183
Developing Templates ���������������������������������������������������������������������������������������������������������������������������������������� 188
Integrating the Data Access Layer �������������������������������������������������������������������������������������������������������������������� 195
Summary ���������������������������������������������������������������������������������������������������������������������������������� 201