我已经完成学习Java语言并希望编写非常小的Web应用程序,因为Facelets似乎是JSP的替代品,并且JSF对于小型Web应用程序来说过于复杂了,我是否可以只学习Facelets并在不使用整个JSF堆栈的情况下使用它?或者对于这些小型Web应用程序,我应该选择JSP呢?
它可以在不使用JSF的情况下使用。只需在web.xml中将FacesServlet映射到URL模式为*.xhtml的位置,并且不要声明。xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" 在任何Facelet模板中,您实际上并不需要声明它们,但这样可以避免“意外”使用它们。您可以将纯HTML编写在其中,并将表单提交到普通的servlet,然后让servlet转发/重定向到Facelet。您只需要记住,使用servlet会导致更多的样板代码来收集请求参数、转换/验证参数、维护和更新模型值、调用业务操作,而所有这些重复的样板代码在JSF托管bean中是不必要的。此外,您不能在仅支持JSP标签库的基于请求的MVC框架(如Struts、Spring MVC等)中使用Facelets。