■ Contents
xx
Implementing the Edit Singer View ���������������������������������������������������������������������������������������������������� 703
Implementing the Add Singer View ����������������������������������������������������������������������������������������������������� 708
Enabling JSR-349 (Bean Validation) ��������������������������������������������������������������������������������������������������� 709
Using jQuery and jQuery UI������������������������������������������������������������������������������������������� 711
Introducing jQuery and jQuery UI �������������������������������������������������������������������������������������������������������� 711
Enabling jQuery and jQuery UI in a View ��������������������������������������������������������������������������������������������� 712
Rich-Text Editing with CKEditor ���������������������������������������������������������������������������������������������������������� 714
Using jqGrid for a Data Grid with Pagination �������������������������������������������������������������������������������������� 715
Enabling jqGrid in the Singer List View ����������������������������������������������������������������������������������������������� 715
Enabling Pagination on the Server Side ��������������������������������������������������������������������������������������������� 717
Handling File Upload ���������������������������������������������������������������������������������������������������� 721
Configuring File Upload Support ��������������������������������������������������������������������������������������������������������� 721
Modifying Views for File Upload Support �������������������������������������������������������������������������������������������� 723
Modifying Controllers for File Upload Support ������������������������������������������������������������������������������������ 724
Securing a Web Application with Spring Security �������������������������������������������������������� 726
Configuring Spring Security ���������������������������������������������������������������������������������������������������������������� 726
Adding Login Functions to the Application ����������������������������������������������������������������������������������������� 729
Using Annotations to Secure Controller Methods ������������������������������������������������������������������������������� 731
Creating Spring Web Applications with Spring Boot ����������������������������������������������������� 732
Setting Up the DAO Layer ��������������������������������������������������������������������������������������������� 733
Setting Up the Service Layer �������������������������������������������������������������������������������������������������������������� 735
Setting Up the Web Layer ������������������������������������������������������������������������������������������������������������������� 735
Setting Up Spring Security ����������������������������������������������������������������������������������������������������������������� 737
Creating Thymeleaf Views �������������������������������������������������������������������������������������������� 738
Using Thymeleaf Extensions����������������������������������������������������������������������������������������� 743
Using Webjars ������������������������������������������������������������������������������������������������������������������������������������� 747
Summary ���������������������������������������������������������������������������������������������������������������������� 749
■Chapter 17: WebSocket ������������������������������������������������������������������������������������� 751
Introducing WebSocket ������������������������������������������������������������������������������������������������ 751
Using WebSocket with Spring �������������������������������������������������������������������������������������� 752