【问题标题】:Eclipse autocomplete (content assist) with facelets (jsf) and xhtml带有 facelets (jsf) 和 xhtml 的 Eclipse 自动完成(内容辅助)
【发布时间】:2011-01-09 07:45:20
【问题描述】:

如何使用facelets在.xhtml页面中为JSF(1.2)标签激活eclipse(3.5,WTP)内容辅助? 它适用于 .jsp 文件,但不适用于 xhtml。

我经常谷歌,在很多地方(包括 MyFaces wiki)都说 - “Eclipse 不能使用 xhtml 和 facelets”

由于这适用于 .jsp 文件,我认为可能有一些机制可以激活该内容辅助。

我开始从事一个项目,该项目已经有一个庞大的代码库,因此更改扩展不是一种选择。额外的插件也是不可取的,但如果没有其他方法可以接受。

(我问这个问题是为了验证是否有人没有找到解决此问题的机智解决方法 - 否则我知道这是不可能的)

【问题讨论】:

  • 是否还有其他适用于此的答案,因为它们都不适合我,带有 .xhtml 和丰富的面孔。

标签: java eclipse jsf facelets


【解决方案1】:

我安装了 JBoss 工具并为我的项目(在 Eclipse Mars 中)配置了 JavaServer Faces 方面,但仍然没有从我的 .xhtml 文件中获得任何内容帮助。这里没有提到的一个解决方案是选择添加 JSF 能力

只需右键单击项目,然后选择配置 -> 添加 JSF 功能

它看起来像上面的图片,但它会说 Add JSF Capabilities 而不是 Remove JSF Capabilities。在上图中,我已经添加了 JSF 能力。

【讨论】:

  • in the place where Remove JSF Capabilities is located 是什么意思?
  • @ACV 也许答案有点不清楚。在我的例子中,我已经添加了这些功能,这就是图片显示 Remove JSF Capabilities 的原因。如果我还没有这样做,它会改为 Add JSF Capabilities。感谢您的评论。
  • 谢谢。即使我有 jboss 工具,我也无法解决问题 :(
【解决方案2】:

我已经为 JSF 编码目的安装了 JBoss 工具。但是在 *.XHTML 中它没有显示 ManagedBean 的内容辅助。所以我按照对我有用的步骤进行了操作。

对于我的项目,这些步骤有效。

1)右键项目-->配置-->添加JSF能力.. Step-by-step procedure (Vailaaa !!!问题解决).. 转到 Xhtml 文件并尝试编写代码 #{m^anagedBeans.HelloJSF()} 其中 (^) 这是系统符号,您只需“Ctrl+空格”即可使用内容辅助。here

【讨论】:

  • 在我的 Eclipse (luna) 中,没有添加 JSF 功能的选项。相反,在project properties > Project Facets 中,我启用了版本2.2JavaServer Faces。但是xhtml文件中仍然没有内容辅助
【解决方案3】:

如果您已经安装了 JBoss 工具,但仍然有这个问题,请卸载 JBoss 工具。重启日食。确保您的已安装组件列表中没有任何 JBoss 工具。

现在回到日食市场。

仅安装:JBoss 工具集中的 JBoss JSF、JBoss Richfaces 和 JBoss Visual Page Editor。不要下载包含 30 多种工具的整个软件包。它是一个臃肿的包,会减慢 Eclipse 的速度,并让你的 Eclipse 实例不必要地膨胀。

使用最新的 JSF 实现库启用 JSF facet。我建议你直接从JSF官方网站下载这个jar。

关闭日食。

打开 eclipse 并创建一个新的工作区。

将项目重新导入新工作区。

这对我有用!

【讨论】:

    【解决方案4】:

    如果没有任何效果,您必须转到 Preferences->General->Keys 如果只有一个“内容辅助”,则搜索“内容辅助” “当”“编辑 Java 源代码”存在时复制此命令。并将绑定设置为 ctrl+space 和“Editing JSP Source”时。

    【讨论】:

      【解决方案5】:

      检查您是否已包含 primefaces 命名空间!因此,您的 html 标记可能如下所示:

      <html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui">
      

      我一直在 Eclipse Luna 和 primefaces 5 中使用。

      【讨论】:

        【解决方案6】:

        建议:在 eclipse Indigo(经典)中使用 ma​​ven 项目

        如下图所示,找不到@mist 建议的Project Facets 选择(因为我没有安装任何插件,但我猜是m2e)。

        所以,我这样做是为了解决这个问题:

        Window &gt;&gt; Preference &gt;&gt; General &gt;&gt; Content Types &gt;&gt; XML &gt;&gt; Add file association (*.xhtml)

        这项工作不太好(内容停止)。

        【讨论】:

        • 只需添加 JSF 项目方面。
        • @BalusC err.. 这不是一个好的答案。但我找不到@mist 建议的project facets 选择。
        【解决方案7】:

        Eclipse Indigo (3.7) 中添加 *.xhtml 作为 jsp 不起作用。

        添加项目方面解决了这个问题:

        右击项目->首选项->项目构面->点击“JavaServer Faces”,版本应该是2.0。

        然后它要求一个库,您可以点击“禁用...”,因为很可能您已经配置了 jar。我没有我的图书馆,所以我忽略了那部分。

        截图:

        【讨论】:

        • Bozho 的解决方案起初对我不起作用。但是您在我的项目中添加 JSF 方面的解决方案立即奏效。谢谢米哈伊尔
        • 这对我不起作用,我仍然无法获得 .xhtml 文件的代码帮助。
        【解决方案8】:

        在提出问题后很快找到了解决方案(在我开始尝试解决问题后一个小时):

        Window &gt; Preferences &gt; General &gt; Content Types &gt; Text &gt; JSP &gt; Add (xhtml)

        使文件被视为 jsp 文件。因此,当使用 JSP 编辑器打开它们时,任何具有.tld 格式定义的标记库(例如&lt;h:&lt;f)的自动完成功能都有效。 Facelets 和 facelets-only 标签仍然不起作用。他们的.tld 等价物应该添加到项目的某处。 Facelet 的 tld 可以在 here 找到。

        here 描述了另一个更复杂的解决方案。

        【讨论】:

        • 也许他很生气,因为你回答了你自己的问题 ;-) 顺便说一句,它也对我有用! (+1)
        • 这对 Galileo 有用,但现在切换到最新版本的 Indigo,我无法让它工作。 Eclipse 3.7 Indigo + Facelets 有人幸运吗?
        • 对于 Eclipse 3.7,将 JavaServer Faces 2.0 facet 添加到项目中为我解决了这个问题。 *.xhtml 已在 HTML 下的 Preferences 窗口中注册。
        • 这对我不起作用,我仍然无法在 .xhtml 文件上获得丰富面孔的代码帮助。
        【解决方案9】:

        使用 JBoss 工具,这是我用于 JSF+Facelets 项目的工具。如果您需要使用这项技术,这是您可以获得的最好的。

        http://www.jboss.org/tools

        我建议使用最新的候选版本 CR1,因为它与 Eclipse 3.5 兼容,最终版本应该很快就会发布,但 CR1 是坚如磐石的。

        http://in.relation.to/Bloggers/JBossTools31CR1Released

        【讨论】:

        • 好。但它肯定适用于 .xhtml 扩展名吗?无论如何,我首选的解决方案是非附加插件
        • 是的,它适用于开箱即用的 xhtml 以及更多有用的东西,如果您进行 JSF 开发,包括任何标签库,甚至自定义 facelets 标签。
        • 由于我使用的是SpringSource Tool Suite,如果我在同一个安装中安装JBoss和SpringSource的工具会感觉很奇怪=))我当然希望它能工作。
        • 添加插件应该是为了插件本身的优点,而不是添加Eclipse自己的功能。
        • 这里没用,真的很重(用了就不能用了)... :(
        【解决方案10】:

        你有没有想过MyEclipse?它不是免费的,但它是一个非常好的工具。当我使用 JSF 进行开发时,它帮助很大。

        【讨论】:

        • 我没有考虑过它有两个原因:1. 它不是免费的 2. 上次我评估它时,它是如此的错误,我不得不重新安装 eclipse。确实是很久以前的事了,但仍然..
        猜你喜欢
        • 2011-05-16
        • 2013-01-12
        • 2011-10-18
        • 2011-09-10
        • 1970-01-01
        • 2012-07-20
        • 2011-12-20
        • 2014-07-05
        • 2013-03-12
        相关资源
        最近更新 更多