Facelets无需JSF

7

我已经完成学习Java语言并希望编写非常小的Web应用程序,因为Facelets似乎是JSP的替代品,并且JSF对于小型Web应用程序来说过于复杂了,我是否可以只学习Facelets并在不使用整个JSF堆栈的情况下使用它?或者对于这些小型Web应用程序,我应该选择JSP呢?


1
你想阅读这些问题吗?这个这个 - Lion
3
我已阅读这些内容,但它们并没有明确说明Facelets是否可以作为独立技术使用。 - Der
2个回答

6
它可以在不使用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。

1
你仍然需要整个jsf jar包,不是吗?此外,当未使用f:和h:时,开发人员还剩下哪些模板选项呢?例如,UI不被认为是JSF的一部分吗? - Koray Tugay
你为什么说不要声明xmlns:f和xmlns:h?如果在Facelets页面中不使用这些标签,还能做什么?只有EL可用吗? - Koray Tugay
不,我的意思是为什么你没有说“不要声明ui:”呢?为什么你只说不要声明f:和h:呢? - Koray Tugay

0

Facelets是为JSF的需求而开发的,因此依赖于JSF。如果您需要JSP的模板,请使用<@import>或更高级的库,如Apache Tiles


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接