<h:inputFile> 标签库支持命名空间:http://java.sun.com/jsf/html,但没有为名称定义标签:inputFile



我使用JSF 2.2, Jboss 7。在运行时,它只是说"标签库支持命名空间:http://java.sun.com/jsf/html,但没有为name: inputFile定义标签"这个错误。谁来帮我解决这个问题?

下面是该xhtml文件。错误在"这一行。

index.xhtml:

<?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 xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        Hello from Facelets
        <h:form  enctype="multipart/form-data">
            <h:inputFile value="#{demoBean.file1}" /><br/>
            <h:inputFile value="#{demoBean.file2}" /><br/>
            <h:commandButton value="Upload" action="#{demoBean.upload()}"/>
        </h:form>
    </h:body>
</html>

Dependencies-pom.xml:

<dependencies>
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-api</artifactId>
            <version>2.2.2</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-impl</artifactId>
            <version>2.2.2</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces</artifactId>
            <version>3.0</version>
        </dependency>
        <dependency>
            <groupId>org.primefaces.themes</groupId>
            <artifactId>bootstrap</artifactId>
            <version>1.0.9</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3</version>
        </dependency>
    </dependencies>

我在maven和pom文件中提到的所有库。此外,除了"标签,所有其他标签都在工作,我搜索了,但这还没有解决。知道我是个简单的错误。我不明白,JSF是新手。很多人遇到过这个问题,给我一些解决方法。

如果您实际上不使用JSF 2.2,就会发生这种情况。

JBoss 7在默认情况下以Mojarra 2.1.x的形式提供了JSF 2.1。您的pom建议您手动升级到Mojarra 2.2.2,这反过来是不可能的,因为它是从Mojarra 2.2已知的。只有2.2.8及更新的版本与JBoss 7兼容(旧版本在部署期间会抛出Weld ContextNotActiveException)。

按照JBoss as/EAP/WildFly中升级JSF/Mojarra的说明进行升级,它应该可以工作。并且,利用这个机会将java.sun.com的JSF 2.0/2.1 XML名称空间域迁移到xmlns.jcp.org的JSF 2.2 XML名称空间域。

相关内容

  • 没有找到相关文章

最新更新