I’m planning a single page webapp with backbone.js and a java backend running jersey. I am interested in bootstrapping model data into the page on the initial load to prevent additional ajax requests, as suggested by the backbone.js documentation:
When your app first loads, it’s common to have a set of initial models that you know you’re going to need, in order to render the page. Instead of firing an extra AJAX request to fetch them, a nicer pattern is to have their data already bootstrapped into the page.
Examples of what I think I need to do are given at backbone-patterns for ruby and php, but I’m not quite connecting the dots with how this would work in java. Do I need to use a templating library such as mustache.java and preprocess the page before it’s served? Could someone give me an example of how that would look?
Thanks, Mark
Yes, you need some form of templating in order to mix your dynamic data with the static layout of your HTML page. However, if you are only going to have a single page, you might not want to invest in setting up a whole templating scheme. You could instead simply break up your page into two sections and serve your home page by putting out the first section followed by your JSON representations followed by the second section. That’s kind of ugly, but it’s up to you as to whether it’s worth it to add templating for this single case. If you choose to use templating, you could use mustache or I might suggest Velocity Templates.
Reading through the Jersey code, it looks like you are going to have to call Jackson explicitly to convert your bootstrapped model objects from Java to JSON.