I'm pleased to announce the first JSF Central editorial in a long time, where I offer some suggestions for JSF 2.0, including hard failure, enhanced support for GET requests, and simplified component development. Here's an excerpt:
One of the best and worse things about web development is the way web applications �fail silently.� What this means to the average developer is that they can spend hours pulling out their hair, merely because they mistyped something and all of a sudden they saw a useless error like a blank page. While this dynamic behavior has all sorts of other benefits�such as allowing integration of disparate applications and permitting several extensions to be built on top of the Servlet API�I still have to wonder: why does everything have to fail silently?
After teaching so many JSF courses and observing the students during the labs, it�s clear that expressions and navigation rules are by far the biggest offenders in JSF applications. If an expression doesn�t resolve to an object, nothing is displayed. If you mistype a navigation rule, simply redisplayed.. I�d like to see a configurable �fail hard� context parameter that will cause JSF to throw a FacesException in these cases. That way, developers won�t waste so much time hunting down these minor errors.
One of the best things about JSF is that it�s extremely pluggable. But that pluggability falls short if you have any interest in accessing the navigation rules. I�d like to see an object model representing the navigation rules. That way, developers could use a format other than faces-config.xml for storing navigation rules, or easily add features based on navigation rules that have been loaded in the default manner. I think this could open up a whole range of possibilities for expanding the power of the navigation subsystem.