I am using jboss 4.0 and Java 1.5. I want开发者_JAVA技巧 to use JSF, but I know that this version is fit to JSF 1.1 version. Is it possible to use the latest JSF version on JBoss 4.0?
As JSF API is built on top of JSP/Servlet API, the maximum supported JSF version depends on the maximum supported JSP/Servlet version.
JSF 1.0 and 1.1 requires a minimum of Servlet 2.4 / JSP 2.0.
JSF 1.2 works on Servlet 2.4, but requires a minimum of JSP/EL 2.1 which goes hand in hand with Servlet 2.5, so it requires after all Servlet 2.5. If you replace JSP 2.1 by Facelets 1.x as default view technology, then you can use JSF 1.2 on Servlet 2.4.
JSF 2.0 which uses by default Facelets 2.x requires a minimum of EL 2.1 which goes hand in hand with Servlet 2.5, so it requires after all Servlet 2.5. If you supply your own EL 2.1 API/impl, then you can in theory run JSF 2.0 on Servlet 2.4.
JSF 2.1 requires a minimum of Servlet 3.0 and Java 1.6 (6.0).
JBoss 4.x is a Servlet 2.4 container. So if you stick to JSP, then you can at highest use JSF 1.1. But if you replace JSP by Facelets 1.x, then you can use JSF 1.2. JSF 1.2 offers as the most important advantages the possibility to get rid of <f:verbatim>
, to use <f:setPropertyActionListener>
, to use @PostConstruct
, etc.
JSF 2.0 is in theory possible, but I don't guarantee that it will work 100% as I am not fully aware of any possible side effects. I have as far only run it successfully with a very basic test page with an ajax form and a view scoped bean on Tomcat 5.5. It might fail when it goes into the complex. See also Running JSF 2.0 on Servlet 2.4 container.
精彩评论