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

时间:2015-07-09 10:38:01

标签: maven jsf jboss7.x jsf-2.2

我正在使用JSF 2.2,Jboss 7.在运行时只是继续说&#34;标记库支持名称空间:http://java.sun.com/jsf/html,但没有为名称定义标记:inputFile&#34;这个错误..任何人帮我解决这个问题..

下面是xhtml文件。错误发生在&#34;&#34;这一行。

的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>

依赖-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文件中提到。此外,除了&#34;&#34;标记所有其他标签正在工作,我搜索但仍然没有解决。知道我这个简单的错误。我想不通,是JSF的新手。很多人都遇到过这个问题,给我解决了。

1 个答案:

答案 0 :(得分:1)

如果你实际上没有使用JSF 2.2,那就会发生。

JBoss 7在默认情况下提供了JSF 2.1的Mojarra 2.1.x版本。你的pom建议你手动将它升级到Mojarra 2.2.2,这是不可能的,因为众所周知,从Mojarra 2.2.x只有2.2.8版本和更新版本兼容JBoss 7(旧版本抛出Weld ContextNotActiveException在部署期间)。

按照Upgrade JSF / Mojarra in JBoss AS / EAP / WildFly中的说明升级它,它应该有效。并借此机会将java.sun.com的JSF 2.0 / 2.1 XML命名空间域迁移到xmlns.jcp.org的JSF 2.2 XML命名空间域。另请参阅Which XML namespace to use with JSF 2.2