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

标记库支持命名空间:http://java.sun.com/jsf/html,但没有为name:inputFile定义标记,jsf,maven,file-upload,jsf-2.2,Jsf,Maven,File Upload,Jsf 2.2,我真的被这个问题难住了。我们有richfaces项目。我想使用标记而不是,因为我不喜欢文件传递给bean的方式。我们的项目运作得很好。我相信我在POM中有所有需要的依赖项,但我甚至在读了@BalusC的文章后手动添加了一些,所以我添加了 <dependency> <groupId>javax.faces</groupId> <artifactId>jsf-impl</artifactId> <version>1.2_15&l

我真的被这个问题难住了。我们有richfaces项目。我想使用标记而不是,因为我不喜欢文件传递给bean的方式。我们的项目运作得很好。我相信我在POM中有所有需要的依赖项,但我甚至在读了@BalusC的文章后手动添加了一些,所以我添加了

<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>1.2_15</version>
</dependency>
 <dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1</version>
</dependency>
这是我的页面:

<ui:composition 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:rich="http://richfaces.org/rich"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:b="http://richfaces.org/sandbox/bootstrap"
    template="/template.xhtml">

    <ui:define name="metadata">
    </ui:define>



    <ui:define name="content">

    <h:inputHidden id="active-bean-name" value="dataloader" />

    <h:form>

    <h:form id="form" enctype="multipart/form-data">
    <rich:fileUpload></rich:fileUpload>

    <h:inputFile id="file" value="#{DataLoaderBean.file}"/>
     <h:commandButton value="Upload"
      action="#{DataLoaderBean.upload}"/>
    </h:form>

    </h:form>

    </ui:define>
</ui:composition>

任何帮助都将不胜感激

很明显,您为JSF1.2 impl和JSF2.1 API指定了Maven坐标,然后您抱怨没有获得JSF2.2特性。我不确定这里有什么不清楚的地方。只需将Maven坐标设置为JSF2.2?如果您的具体问题是您无法理解它们是什么,那么请查看JSF主页:@BalusC you's right,我真是太蠢了。我们正在使用JBossAS7.1。我把这些文件放进去是因为我感到困惑,但是jsf api和jsf impl是用JBOSS作为7.1打包的。问题是我无法升级到2.2,因为JBossAS7.1不支持它。只有JBossAS8,我们还没有准备好。所以我想我是索尔。一如既往地感谢您的帮助。您完全可以将JBoss升级为7.1以利用JSF2.2。其他人比你先做过。见例。也许您会感到困惑,因为默认情况下,它已经随2.1发布了?或者也许你没有意识到你不应该通过Maven来做这件事,因为JSF不是在webapp中捆绑的,而是在服务器本身?@BalusC是的,一开始我很困惑,我不应该通过Maven来做,因为它是捆绑的。然后,我确实尝试利用上述步骤升级到2.2,但出现了几个错误。然后我读了这篇文章,这让我相信我无法升级,但我没有足够仔细地阅读这篇文章。我将尝试再次升级,看看它是如何工作的。谢谢大家!@巴卢斯你就是那个人,当我试图升级到2.2时,我错过了一行。我没有意识到JSFAPI现在依赖于jsf impl。现在已经解决了,我可以走了。