我正在使用JSF 2.2,Jboss 7.在运行时只是继续说"标记库支持名称空间:http://java.sun.com/jsf/html,但没有为名称定义标记: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>
依赖-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的新手。很多人都遇到过这个问题,给我解决了。
答案 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。