gamelan
Search EarthWeb
CodeGuru | Gamelan | Jars | Wireless | Discussions
Navigate developer.com
Architecture & Design  
Database  
Java
Languages & Tools
Microsoft & .NET
Open Source  
Project Management  
Security  
Techniques  
Voice  
Web Services  
Wireless/Mobile
XML  
Technology Jobs  

   Developer.com Webcasts:
  The Impact of Coding Standards and Code Reviews

  Project Management for the Developer

  Defining Your Own Software Development Methodology

  more Webcasts...




See the Winners!


Developer Jobs

Be a Commerce Partner
Cell Phones
Online Education
Memory
Dental Insurance
KVM over IP
Laptop Batteries
Promote Your Website
KVM Switches
GPS Devices
Promotional Products
Promotional Pens
Compare Prices
Imprinted Gifts
Build a Server Rack

 


  eKit: Essential HP Solutions for Your Data Center
Data protection and disaster recovery tools help keep data secure and available under the worst of circumstances.

Download this eKit and get:

eBook: Guide to Storage Networking
eBook: Storage Networking 2, Configuration and Planning
Whitepaper: Storage Management Costs in the Enterprise: A Comparison of Mid-Range Array Solutions
Whitepaper: Virtualization - It's Not Just for Enterprises Anymore
Whitepaper: Continuous Real-time Data Protection and Disaster Recovery

Click Here!
Developer News -
SaaS Tool Offers Custom Database Development    May 9, 2008
Microsoft’s Automated Agent: Can We Talk?    May 7, 2008
Borland Finally Sells CodeGear    May 7, 2008
Red Hat Heads For The JON 2.0    May 7, 2008
Free Tech Newsletter -

Best Practices for Developing a Web Site: Checklists, Tips, Strategies & More. Download Exclusive eBook Now.

The Many Faces of JavaServer Faces (JSF)
By Michael Nash

Go to page: 1  2  Next  

No doubt the name at least is familiar: JavaServer Faces has been talked about a lot, and much anticipated, with good reason. For years there have been an ever-expanding choice of ways to take your web application's output and get it on a page (or on some other kind of display). The Servlet API did a lot to enable the first Java web applications - having created web applications for Java before Servlets, I can attest to how much it helped! The first web applications with Servlets cranked out HTML directly - pretty much everyone now agrees this was a bad plan, and hard to maintain to boot. Next came toolkits such as Apache's Element Construction Set that generated the HTML for you. A step in the right direction, but not far enough for most. Then came JSP: A hybrid, in some ways, between an HTML page and a Servlet. JSP was a significant step forward from Servlet-generated HTML - If you use it right (and that's a critical if), you can enforce a pretty clean separation of view and application logic. Better still, JSP's, particularly once tag libraries came along, were simple enough that non-programmers could help with the page layout process, particularly for HTML formatting.

Other UI technologies went in different directions, though: Apache's Velocity, similar and to some degree a successor to the popular WebMacro project, applied a simple but extensible template language to generating the UI portion of an application, reading JavaBean properties from the Servlet context (where the application logic put it). Tea, Maverick, WebWork2, Scope, Echo, FreeMarker, Barracuda, Cocoon - all took different, and in some cases radically different, approaches to getting the data from the application logic to the page.

Sometimes, as in the case of Barracuda, Cocoon, and several others, XML was involved, and potentially XSL transformations. Many of these frameworks also delved into the application logic side of the equation, proving much more than a UI system. Struts is perhaps the most widely known example, taking the JSP approach to a new level with a powerful custom tag library, and popularizing the concept and advantages of Model/View/Controller that Smalltalk old-timers were so familiar with. Over time, many common elements began to emerge between such frameworks, and it became clearer what the best practices were for UI technology in a web environment, what worked and what didn't. Developers realized that web applications that used HTML/HTTP as the basis of their UI were quite different animals from desktop or "thick" client applications using Swing or other such toolkits. The user, however, still wanted a rich and responsive UI experience. There was still a wide gap in the way the various frameworks produced the display from the data produced from the application logic, and techniques and UI elements created for one technology were not portable to the next. You couldn't take a custom JSP tag from Struts and use it in an application build with Scope, for example. You couldn't take UI components for Echo and easily apply them to an application built with Cocoon. This meant that anyone attempting to build tools to make it easier for page/UI designers to do their job had to back one horse, or write many different tools, neither of which was a very attractive option. As a result, Java and J2EE lacked the rich graphical tools to help build applications by comparison to an up-and-coming rival, .NET. While the hard-boiled "vi" crowd didn't see this as a problem, it did limit the adoption of Java and of many of these different frameworks in many organizations, where experienced developer resources were not available for creating Luis. Either the UI got short shrift - the results of which we can see on the web today in the many horrifying anti-examples of usability out there - or the development project went wildly over budget re-inventing the wheel, because there was no standard wheel to do UI development. The other choice was to commit to a single UI framework approach, and abandon any possibility of portability later on.

JSF should change all that - one of it's goals is to bring a single common standard that tool-creators can use to build their tools against, while still allowing many different options for rendering the finished UI. One JSF-based design tool should be able to be used on many different JSF implementations, and components should be portable from one implementation to the next, so that neat UI gizmo you built for one application really can be re-used on another.

Sounds great - but where's the beef? How is JSF going to accomplish these admittedly lofty goals? Let's look at JSF from several different perspectives, and talk about about where the rubber meets the road - how you'll be able to apply JSF from a practical perspective on your development projects, no matter what UI technology you're currently backing.

It's important to realize that JSF is not tied inextricably to JSP, even though the reference implementation demonstrates JSF with JSP. JSF defines non-visual UI components, which sounds like a contradiction in terms - the idea, however, is to separate the definition of a UI component from it's presentation. Much like dividing up UI and application logic, but at a finer level. Now we're talking about dividing up the UI into a non-visual representation and a rendering - a translation of that non-visual representation into an actual display. That rendering can be done in any number of ways, as we will see.

Go to page: 1  2  Next  


Tools:
Add www.developer.com to your favorites
Add www.developer.com to your browser search box
IE 7 | Firefox 2.0 | Firefox 1.5.x
Receive news via our XML/RSS feed


Other Java Archives

Work With InterSystems. Not Separate Systems. Rapidly develop and deploy connectable applications.
Whitepaper: XML Processing in Applications--Take the Next Step
Whitepaper: Enterprise Information Integration--Deployment Best Practices for Low-Cost Implementation
Intel Go Parallel Portal: Translating Multicore Power into Application Performance
Developing Intelligent Communications? Visit the Avaya DevConnect Center on DevX.



JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

Solutions
Whitepapers and eBooks
Microsoft Article: HyperV-The Killer Feature in WinServer ‘08
Avaya Article: How to Feed Data into the Avaya Event Processor
Microsoft Article: Install What You Need with Win Server ‘08
HP eBook: Putting the Green into IT
Whitepaper: HP Integrated Citrix XenServer for HP ProLiant Servers
Intel Go Parallel Portal: Interview with C++ Guru Herb Sutter, Part 1
Intel Go Parallel Portal: Interview with C++ Guru Herb Sutter, Part 2--The Future of Concurrency
Avaya Article: Setting Up a SIP A/S Development Environment
IBM Article: How Cool Is Your Data Center?
Microsoft Article: Managing Virtual Machines with Microsoft System Center
HP eBook: Storage Networking , Part 1
Microsoft Article: Solving Data Center Complexity with Microsoft System Center Configuration Manager 2007
MORE WHITEPAPERS, EBOOKS, AND ARTICLES
Webcasts
Intel Video: Are Multi-core Processors Here to Stay?
On-Demand Webcast: Five Virtualization Trends to Watch
HP Video: Page Cost Calculator
Intel Video: APIs for Parallel Programming
HP Webcast: Storage Is Changing Fast - Be Ready or Be Left Behind
Microsoft Silverlight Video: Creating Fading Controls with Expression Design and Expression Blend 2
MORE WEBCASTS, PODCASTS, AND VIDEOS
Downloads and eKits
Sun Download: Solaris 8 Migration Assistant
Sybase Download: SQL Anywhere Developer Edition
Red Gate Download: SQL Backup Pro and free DBA Best Practices eBook
Red Gate Download: SQL Compare Pro 6
Iron Speed Designer Application Generator
MORE DOWNLOADS, EKITS, AND FREE TRIALS
Tutorials and Demos
How-to-Article: Preparing for Hyper-Threading Technology and Dual Core Technology
eTouch PDF: Conquering the Tyranny of E-Mail and Word Processors
IBM Article: Collaborating in the High-Performance Workplace
HP Demo: StorageWorks EVA4400
Intel Featured Algorhythm: Intel Threading Building Blocks--The Pipeline Class
Microsoft How-to Article: Get Going with Silverlight and Windows Live
MORE TUTORIALS, DEMOS AND STEP-BY-STEP GUIDES