Ich muss HLX aber bremsen. Um sämtlichen Java-Code aus der JSP auszulagern, reicht es, die JSP 2.0-Spezifikation zu verwenden, incl. JSTL und Custom Tags.
JSF ist mit einem ganz anderen Ziel verknüpft, nämlich dem Entwickler das von Desktop-Anwendungen bekannte ereignisgesteuerte Paradigma zu ermöglichen, d.h. es gibt nicht mehr Request und Response, sondern (sinngemäß) die Ereignisse Button-Klick etc. Außerdem übernimmt das Framework auch die Anbindung der Beans an Formularfelder.
JSF ist sehr jung und hat noch Kinderkrankheiten, aber eigentlich ist es eine Art Metamodell, welches bestimmte Oberflächenkomponenten bereit stellt, die dann durch einen Renderer in eine entsprechende Ausgabeform (z.B. HTML) gerendert werden. Leider kann ich es mir bislang nur mit HTML vorstellen, da HTML- und JSF-Tags vermischt sind, aber gedacht sind auch Render-Möglichkeiten wie Flash, Java-Programme uswusf.