1

嗨,我正在创建一个 JSF 项目,但自动完成功能在 Eclipse 中不起作用。例如

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="/WEB-INF/jsf_core.tld"
    xmlns:h="http://java.sun.com/jsf/html">

<h:head>
    <title>JSF 2.0 Hello World</title>
    <h:outputStylesheet library="css" name="default.css" />
</h:head>
<h:body>
    <h3>JSF 2.0 Hello World Example - hello.xhtml</h3>
    <h:form>
        <h:inputText value="#{helloBean.name}"></h:inputText>
        <h:commandButton value="Click" action="welcome"></h:commandButton>
    </h:form>
       </h:body>
</html>

tlds 是通过 mens of link 导入的。当我按下 ctrl+space 后 f: 它没有显示可用的命令。所以我尝试将实际文件放在 WEB-INF 文件夹中,并将其导入文件中。仍然无法正常工作。

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="/WEB-INF/jsf_core.tld"
    xmlns:h="/WEB-INF/jsf_core.tld">

任何人都可以帮助如何做到这一点。

4

1 回答 1

1

首先,您绝对不应该从 JAR 中提取松散的 TLD 文件并将它们转储到您的 webapp 中。这是便携性问题的秘诀。删除它们并撤消与此相关的所有其他内容。您应该只拥有这些 XML 命名空间:

xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"

至于自动完成在Eclipse中不起作用的具体问题;该行为取决于所使用的 Eclipse 版本和项目配置。您至少需要 Eclipse Indigo SR1 才能获得适当的内置 JSF 2.0 Facelets 自动完成支持。此外,该项目需要创建为启用 JSF 2.0 Facet 的动态 Web 项目

替代方案是集成Glassfish Eclipse 插件JBoss Tools Eclipse 插件。特别是 JBoss Tools 插件提供了许多其他功能,例如 EL 表达式自动完成和 Ctrl+单击导航。

于 2012-10-10T14:48:41.890 回答