
Explore building full-stack Java web applications with Apache Wicket 9.x+ integrated into Spring Boot, leveraging server-side component-based UI, Ajax components, and MongoDB via Spring Data for MongoDB.
Explore how to set up an Apache Wicket 9.x+ application with Spring Boot using the springboard integration, including a baseline Maven project, MongoDB, and page templates.
Build a single-page to-do app with Apache Wicket, handling front-end and back-end on the server side, implementing add, remove, select all, and upload, download, and export to PDF and excel.
Build a dynamic Apache Wicket application from scratch by wiring a label component in the backend and rendering it on the Bootstrap-based page, using Wicket's front-end back-end rendering.
Learn how to integrate MongoDB as a backend data store for an Apache Wicket application, including adding, removing, and listing items with Spring Data for MongoDB.
Configure MongoDB support in a Spring Boot app by adding the Spring Boot Starter Data MongoDB dependency in Maven and configuring the database name and port, with GridFS for attachments.
Implement a MongoDB document model with Spring Data annotations, a crud repository, and a service using dependency injection to seed eight items on startup.
Demonstrates MongoDB integration in an Apache Wicket app with Spring Data for MongoDB, seeding eight items on startup and MongoDB service injected via Spring bean, with the UI reflecting deletions.
Develop and display to-do items by fetching all items from MongoDB via the MongoDB service and rendering them in an Apache Wicket list view on the home page.
Implement a todo list in a single page app using Apache Wicket 9.x+ list view, wiring populateItem and binding title and body from MongoDB with property modal or lambda syntax.
Add a new item button and a title and body form to the to-do app. Save items to MongoDB via wicked IDs and Ajax for seamless front end integration.
Implement a todo creation form in Apache Wicket (version 9.x+) with title and body fields bound to the HTML, an Ajax-enabled save button, server-side visibility toggling, and persistence to MongoDB.
Bind the todo fields to a to-do object, submit via Ajax, save to MongoDB, and refresh the UI to display the new item.
Learn to enable real-time updates in Apache Wicket by using a feedback panel and ajax, with a section form and output markup id.
Synchronize a MongoDB-backed to-do list with Apache Wicket by fetching updates, refreshing the list view, and enabling item selection through a bound checkbox and transient selected property.
Implement a remove button in Apache Wicket 9.x+ that deletes selected todos via ajax, updates MongoDB, and refreshes the UI with a feedback panel.
Explore how Apache Wicket's WebKit engine enables seamless UI-backend communication with Ajax, avoiding per-endpoint HTML wiring and keeping most logic in Java for easy maintenance.
Add select all and deselect all buttons in an Apache Wicket 9.x+ app, wiring them to the back end via AJAX links and updating the UI through server communication.
Develop a single page application with Apache Wicket, Ajax, and Spring Boot, managing data in MongoDB via forms, buttons, and grid components, no JavaScript.
Continue implementing a to-do app export feature that converts items from MongoDB to an Excel file using Apache POI, enabling browser download with rich formatting and images.
Employ the Apache POI library in a Java-based Maven project by adding the pom.xml dependency to enable converting and creating Excel files for browser download.
Create a backend using the Apache library to generate an Excel 2007+ workbook, pull to-dos from MongoDB, and expose a downloadable sheet via a Spring Boot service.
Add an export button to the RMS Excel flow by updating the HTML toolbar and implementing a matching Ajax link in the Java class.
Connect a back-end excel export to a Wicket ajax download button by implementing an ajax download class that streams an Excel workbook from the Excel generator service to the user.
Apply styling to an Excel file using a library; create and share a style across the workbook, customize borders, fonts, colors, and apply to header cells; preview results.
Review the server-side Wicket app, focusing on a download Excel button that streams the workbook to the browser via a back-end download object and a Spring bean injected Excel generator.
Implement visibility and enabled states for the MSS Excel export button in an Apache Wicket app by monitoring MongoDB items; hide when no data, show or enable when data exists.
Explore adding a pdf export feature to a wicket app, mirroring export to excel with on-the-fly pdf creation. Configure maven dependencies and time leaf templates to embed signatures and barcodes.
Build a spring boot pdf generator service that renders HTML with time leaf context from MongoDB data (to-dos and title) and converts it to a pdf byte stream for download.
Create a pdf template in resources/templates/pdf; define context variables title and items; iterate with time leaf syntax to render a two-column table showing item title and body for the pdf.
Implement a pdf download button in Apache Wicket 9.x+, wire an ajax download flow to a spring-injected pdf generator, and stream the pdf to the browser.
Explore starting with Apache Wicket 9.x, using a single-page app with server-side Java to render PDF exports via a download button, driven by Ajax updates and a feedback panel.
Explore how to style pdf output by applying HTML and CSS in the render pipeline, including inline styles, classes, and external stylesheets, for table formatting, headers, and page breaks.
Add an image to the pdf by updating the html template and converting the image to base64 (png/jpeg/gif), then render it via the image one variable in the Thymeleaf context.
Discover embedding dynamically generated barcodes in PDFs by creating a barcode service in a wicket app, converting to base64, and rendering via html to pdf with css.
Render dynamic pdfs from html using Thymeleaf templates and a pdf generator service, integrated with Apache Wicket and Spring Boot, with css styling, images, barcodes, and tables for on-the-fly downloads.
Welcome to the ‘Starting with Apache Wicket’ course. With this course, you are going to add value to your existing JAVA and Apache Wicket 9+ (with SpringBoot) knowledge by getting familiar with several techniques for solving specifically selected areas of JAVA web application development.
We will focus on several topics often useful in corporate JAVA development but not exclusively. SpringBoot is being used here as an underlying framework, but solutions presented here are not specific to this platform and can be reused e.g. with recent Quarkus support, etc.
The primary idea of this course is to help new or existing Apache Wicket developers to adopt certain knowledge in an easy way. The solutions presented are being used for several years in production-grade Wicket applications and the libraries used are well-known for stability and active development. This will protect the value invested into adopting some libraries or projects.
What you'll learn
Start building real apps with Apache Wicket and SpringBoot
Become a master in fullstack development using Apache Wicket
Learning-by-doing method of building real application and practice your knowledge immediately
Use ajax client/server communication using Java only
Integrate 3rd party libraries into your Apache Wicket app
Add a new value to your existing SpringBoot development knowledge/skills
Topics covered by this course:
During a course, we create a basic Apache Wicket single-page application and each lecture will add a new enhancement to it. Eventually, we create a single application with many different features. The main topics include:
creating a full-featured single-page application using Apache Wicket
export application data in MS Excel format with formatting and some other features
export application data in PDF format with formatting, embedded images or bar-codes
including MongoDB as persistent data storage
using GridFS as an attachment/file uploads data storage (PREPARING)
An important part of this course is to realize 'what we don't need to do' when using Apache Wicket. Simplification can be huge and the old saying that 'the best code is the code you don't have to write' is proven here.
GitHub repository:
The source code is available through the link attached to the last lecture in this course. You can clone the repo and use the code snippets we are building in this course.
Summary:
‘Starting with Apache Wicket’ course is targeted at individuals or small/medium teams of professional Java developers that want to be productive and competitive in this large market. Techniques presented here can be reused easily in application development of many kinds.