我是基于 Java 的网络编程的新手,正在尝试从头开始学习 JSF。我听说 JSF 被解释为一个完整的 MVC 解决方案,而 Facelets 是一种纯 XML 技术,包含 MVC 架构的“ View ”组件。
因此,不知道有什么更好的,这让我问:每个组件有哪些选择/备选方案?对于这 3 个(模型、 View 和 Controller )中的每一个,存在哪些工具/API/库/技术可以与 JSF 一起使用。例如,如果正确理解 View 基础知识,JSP 是 Facelets 的(旧的/过时的)替代品。还有其他人吗?模型组件怎么样:我在那里有哪些选择? Controller ?
再次重申,现在只是对将所有内容都置于 JSF 保护之下感兴趣:如果该组件作为 JSF 解决方案的某个部分兼容,我想听听!
感谢您的任何建议!
最佳答案
我很惊讶 BalusC 还没有用他令人作呕的完整答案之一来解决这个问题。我怀疑他会解决这个问题,当他这样做时我会投票支持它,因为它会很棒所以不要马上接受我的回答。与此同时,这里有一些想法:
JSF 旨在成为完整的 MVC 堆栈,重点放在 VC 上。您的 JSP/Facelets 是正确的。简单地说,不要使用 JSP。使用 Facelets。它们是 JSF 2 的默认 View 技术。它们是基于 xml 的,可以防止您因 JSF 生命周期和 JSP 生命周期之间的“有趣”交互而受到伤害。
您将编写 Java 类和导航规则来充当 JSF 中的 Controller 角色。您可以将 JSF 托管 bean 用于您的服务,或者您可以为此目的使用某些其他框架(如 Spring),但您将实现特定的类以用作 JSF 中的 Controller 。
至于模型……好吧,任何好的 MVC 框架都会将模型留给自己。模型不应该知道或关心它在哪个 View 中。希望您可以使用从 JSF 到 Wicket 再到 Vaadin 的任何东西将模型显示在网页中,然后也可以在桌面应用程序或基于 RESTful JSON 中使用它应用程序接口(interface)。
我建议您通过以下链接了解 JSF
- > http://www.ibm.com/developerworks/library/j-jsf1/ (年龄较大,但会掌握基础知识)
- > http://www.ibm.com/developerworks/library/j-jsf2/ (上述第 2 部分)
- > http://www.ibm.com/developerworks/library/j-jsf3/ (以上第 3 部分)
- > http://www.coreservlets.com/JSF-Tutorial/jsf2/ (Marty Hall 的教程
关于java - 可用的 JSF MVC 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7407451/