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.


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.

What's wrong with JSF

The developers of Seam have come up with a list of major issues with JSF. I'm assuming many of these issues are fixed by Seam, but it's interesting to note how they've somewhat admitted that JSF has many flaws. Note that there's a lot of references to Struts and WebWork.

Hopefully many of these will be fixed in JSF 2. If REST support is an important feature for web frameworks, it'll be be interesting to see how the component frameworks handle it. It'd be great if they provided native support. Oh wait, then they'd be action-based frameworks. ;-)

Posted in Java at Aug 25 2008, 06:53:31 PM MDT 5 Comments

Struts has many custom tags that 'emulate' components. Wicket, Seam, and Spring Web Flow add REST/action-based access to component-based pages. Actions are not bad 'per se', but action-based frameworks have reached their limits in terms of manageable complexity. Component-based approaches create a much higher-level foundation, which is appropriate to handle this crescent complexity. Why not have the best of both worlds? :)

Posted by Tetsuo on August 25, 2008 at 08:35 PM MDT #

I wonder if Facelets is enough as a templating language. If I am not wrong, it only produces XHTML, however many page composers prefer HTML 4 or many will embrace the upcoming HTML 5.

Posted by Behrang Saeedzadeh on August 26, 2008 at 04:38 AM MDT #

it's interesting to note how they've somewhat admitted that JSF has many flaws
I thought one of the major selling points of Seam was exactly this - I don't think the JBoss folks have ever been shy about saying JSF has significant flaws. Currently coming off of a major JSF application build myself, and I completely agree with much of what is posted here. One of the major issues that I think isn't covered directly in these comments from the Seam folks is how poor the code quality of the JSF RI is (relative to other Sun RIs), specifically around completeness of logging, code comments, etc. as well as the exception handling issues (which are briefly mentioned). For those who are not able to use the MyFaces implementation, the poor quality (in JSF 1.x) of the Sun RI is a huge impediment to success in a JSF project.

Posted by Peter Mularien on September 04, 2008 at 08:45 AM MDT #

I've been using JSF for about 3 years now. Initially it was just JSF, then JSF-Facelets-Spring and now Seam-Facelets-Icefaces. First off, I couldn't image using any kind of JSF technology without facelets, not only for its templating but for its ability to create custom components by templating together other components (ie, a field tag which is an aggregate of a label, input field and message). Facelets can generate any kind of document type, XHTML, HTML 4 or HTML 5. Seam expands the JSF foundation offering a rich framework for rapidly building sophisticated websites by addressing concerns like a unified bean container, advanced bean lifecycle (new scopes and lifecycle methods), page/component/object level security, simplified crud and conversations/webflows/wizards. Finally, Icefaces is the icing on the cake. A powerful component library that supports server push - you can knock off crud style pages and highly interactive pages in no time. I think this stack is worth a look for anyone wanting a faster way of doing web work. It's a sophisticated stack that lets you get things done quickly - a powerful combination.

Posted by Don Kittle on September 04, 2008 at 09:49 AM MDT #

@Don How much of that power / productivity do you think is due to the design of the JSF underpinnings itself, vs the high quality third-party extensions to the core technology that you mention? Shouldn't some of the "extended core" functionality provided by Seam, Facelets, and IceFaces deservedly have a place in the baseline JSF spec and implementation? If so, what would you see as critical ideas that should be pulled into baseline JSF? In my impression, some of these elements, especially Facelets and Seam, were created specifically to work around critical lifecycle or design issues of JSF itself - thus it seems that JSF 2 could, and should, be learning some lessons from the work of these projects.

Posted by Peter Mularien on September 04, 2008 at 10:04 AM MDT #

Post a Comment:
  • HTML Syntax: Allowed