Matt RaibleMatt Raible is a Web Developer and Java Champion. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

Alternative web frameworks for AppFuse

I've was thinking about the AppFuse Roadmap for a bit today - and it hit me. The hardest part of supporting frameworks like WebWork and Tapestry is going to be replacing the Struts features I'm confortable with. For WebWork, it should be fairly easy to replace Tiles with SiteMesh, but for Tapestry - does a templating framework even exist? Other things that might be hard to implement in Tapestry are the DisplayTag (although Erik Hatcher did mention it's easy to implement in Tapestry) and Struts Menu. I imagine doing something like implementing a menu with CSS/JavaScript isn't too hard in Tapesty - but can it be configured from an XML file and a Velocity template? Implementing these components into WebWork should be easy since it supports JSP, but Tapesty is a whole different animal. I've also heard that JSF already has a grid component - and the struts-faces library should allow me to use Struts Menu easily with JSF.

I guess the good news in all of this is that I will discover if this stuff is possible or not - instead of just wondering. If you do happen to know the answers off the top of your head - please let me know. The real question is - after all of this - which framework will I choose as my favorite. Stick around and read about my journey into these other frameworks from the perspective of a hardcore Struts developer and enthusiast. I don't plan on trying to prove that Struts is better - I just want to find the beauty of these other frameworks and report if it's all hype or actually true.

Posted in Java at Jan 17 2004, 09:24:47 PM MST 5 Comments
Comments:

Excellent. I really look forward to hearing how it goes. I currently use Struts (+Tiles, +DisplayTag) for my site and would like to move to something more sexy but am having trouble finding justification for the effort. I have read a lot of comments about the other frameworks but mostly from their creators/developers. So to hear the comments of a Struts developer and enthusiast would be very welcome for my own roadmap justification.

Posted by Jonathan Morrissey on January 18, 2004 at 11:54 AM MST #

If you weren't using a Struts Action as a Tile why is it not possible to use Tiles with Web work? What dependencies on Struts does Tiles have?

Posted by Robert Nicholson on January 18, 2004 at 05:10 PM MST #

Unfortunately, as of Struts 1.1 - Tiles is only available as part of struts.jar. This file is < 500K, so I guess it's not a big deal. The Spring JAR is almost 1 MB, and I probably will only end up using a handful of classes there.

Posted by Matt Raible on January 18, 2004 at 06:01 PM MST #

Spring also provides a web framework. Reading Rod's book (and playing with Spring?) have you decided 'porting' to Spring as well? Personally, I use Spring as a neat service layer and configuration tool. My application_context.xml file is 75% application configuration details (drivers, directories, max. image size, thumbnail suffix, etc.) and 25% service bean set-up.

BTW, my service stuff is similar to what you suggest re Manager/ManagerImpl on the appfuse roadmap. That way I keep the web layer completely DAO free. Hopefully this helps when switching to JSF ;)

Posted by Jaap on January 19, 2004 at 10:23 AM MST #

With Tapestry, a decent template/tiles alternative is to use the Border component (see the workbench demo application for an example). As for DisplayTag, the contrib:Table component is far more capable and "componentized" than any taglib could ever hope to be. As for StrutsMenu - you will find (after the perhaps steep Tapestry learning curve) that writing custom components are a breeze, and that Tapestry was built for JavaScript integration in a very very powerful and elegant manner. Take the plunge, Matt, and forget Struts for a bit :) <p /> As for Tapestry and XML config and Velocity templating - sure, it can do that. We wrote a custom component to render Velocity templates, in fact. I don't recommend that XML file config for menus since that is far too inflexible for the apps I'm building - the config must be in the database, but yes, its just Java so metadata could be pulled from anywhere.

Posted by Erik Hatcher on January 19, 2004 at 06:45 PM MST #

Post a Comment:
Comments are closed for this entry.