我开始使用JSF2.0。 我按照教程没有问题,一切正常!我用过Eclipse Helios。 但我发现了一些我无法理解的东西。 该教程说要为JSF 2添加Project Facet。 我没有这样做,一切都运转正常。所以要完全遵循教程:
右键单击Project - >属性 - >项目方面
并没有勾选JavaServer Faces facet复选框。我认为这是Project Facet教程的含义。我点击它和
需要进一步配置
链接出现了。我按照指向JSF功能(修改分面项目)对话框的链接,我选择了用户库,我的JSF库(MyFaces)但我得到了错误消息:
找到所需类javax.faces.FactoryFinder的多个版本。
这是什么错误?创建项目后,我无法添加项目构面吗? 我需要什么项目方面? 我的(琐碎的)代码表明JSF工作正常,那么Facet对项目有用的是什么?
答案 0 :(得分:3)
来自Eclipse help:
方面定义特征和 Java EE项目的要求和 用作运行时的一部分 配置。
向项目添加构面时, 该项目配置为执行 某项任务,确定无疑 要求,或有一定的 特点。例如,EAR facet设置一个项目来充当 通过添加一个企业应用程序 部署描述符和设置 项目的类路径。
如果是JSF facet:
可以使用以下功能 安装JSF方面时:
- JSF库配置支持
- 应用程序配置管理
- 大多数JSF的JSP源页面语义验证和内容辅助 核心和JSF HTML标记库 使用Expression的属性值 语言(EL)与否。
- “在服务器上运行”对JSF JSP页面的支持
如果出现此错误:
找到所需类javax.faces.FactoryFinder的多个版本。
看起来工具已在项目类路径中检测到核心JSF API的多个副本。 JSF对此有一定的容忍度,并且历史上支持在不同的类加载器上下文中运行不同的版本 - 也就是说,您可以将一个放在WAR中,一个放在容器中。使用“打开类型”对话框( CTRL + SHIFT + T )并搜索javax.faces.FactoryFinder
应该可以帮助您找到罪魁祸首jar。
答案 1 :(得分:2)
将JSF nature / facet添加到项目中会增加代码完成等功能,将jsf可视化组件添加到您的网页编辑器等项目中。检查你的构建补丁,看看有多少jsf api jar。我假设这个错误是在IDE中,而不是在正在运行的应用程序中。
答案 2 :(得分:0)
JSF facet帮助您使用JSF库对项目进行属性配置。它还支持JSF Tools项目中的一系列JSF特定验证和工具。虽然可以在不使用JSF工具的情况下开发JSF应用程序,但如果使用这些工具,可以提高工作效率。
如果您有兴趣在教程中尝试使用JSF工具,请首先使用JSF facet创建一个新的Web项目。然后跳过教程中有关配置库或创建描述符的部分。