JSF是一个MVC框架,但我不明白为什么我们需要JSF标签,如果我们已经有了这么多HTML标签。 毫无疑问,JSF简化了很多事情。 我想更多地了解JSF中的模型、视图和控制器到底是什么。
JSF是一个MVC框架,但我不明白为什么我们需要JSF标签,如果我们已经有了这么多HTML标签。 毫无疑问,JSF简化了很多事情。 我想更多地了解JSF中的模型、视图和控制器到底是什么。
JSF是一个基于组件的MVC框架,构建在Servlet API之上,并提供了标签库中的组件,可用于JSP或任何其他基于Java的视图技术,例如Facelets。Facelets比JSP更适合JSF。它提供了很好的模板功能,如复合组件,而JSP基本上只提供了用于模板化的标记,因此当您想要使用单个组件替换重复组件组时,您被迫使用原始Java代码创建自定义组件(这在JSF中有点不透明且非常繁琐)。如果可以的话,我建议放弃JSP并选择Facelets进行JSF开发。
作为MVC(Model-View-Controller)框架,JSF提供FacesServlet作为唯一的请求-响应控制器。它将所有标准和繁琐的HTTP请求/响应工作从您手中拿走,例如收集用户输入,验证/转换它们,将它们放入模型对象中,调用操作并呈现响应。这样,您最终会得到基本上是JSP或Facelets(XHTML)页面作为视图,以及一个JavaBean类作为模型。JSF组件用于将视图与模型绑定(就像您的ASP.NET Web控件一样),FacesServlet使用JSF组件树来完成所有工作。