1

我试图将 MyFaces Tomahawk 添加到我在 NetBeans 中的 JSF 2.0 项目中。我读了很多评论,上面写着怎么做,但它不起作用有我已经完成的步骤:

1º 复制从 Tomahawk 网站下载的所有 jar 库到 /%ProjectFolder%/web/WEB-INF/lib (我没有得到 lib 文件夹,所以我创建了它)

2º 使用 netbeans 中的 Properties/Libraries/Add 文件夹将库添加到项目中

3º 将以下代码添加到 web.xml:

 <filter>
  <filter-name>extensionsFilter</filter-name>
  <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
 </filter>

 <filter-mapping>
  <filter-name>extensionsFilter</filter-name>
  <servlet-name>Faces Servlet</servlet-name>
 </filter-mapping>

 <filter-mapping>
  <filter-name>extensionsFilter</filter-name>
  <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
 </filter-mapping>

 <servlet>
  <servlet-name>Faces Servlet</servlet-name>
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

4º 在 index.xhtml 的 html 标记中添加以下行:

xmlns:t="http://myfaces.apache.org/tomahawk"

好吧,我想我不需要做更多,但是当我做最后一步时,NetBeans 说我:“没有找到这个命名空间的库”。

我确定我做得不好,但我不知道我需要做什么.....一些想法?

我希望这篇文章可以作为教程,因为我认为它是必要的。

谢谢^^

编辑:

我发现了错误:我们需要另一个步骤:

5º 您必须下载示例文件。它是 War 文件中的示例集合。使用 winrar 或类似工具打开它,然后解压缩 myfaces-example-simple20-1.1.11文件夹。之后,转到myfaces-example-simple20-1.1.11\WEB-INF\src\META-INF\ 目录并复制您的 web/META-INF/ 中的所有文件。然后,netbeans 将显示帮助和自动填充选项。

4

2 回答 2

0

我遇到了同样的问题并通过以下步骤解决:

  1. 将 tomahawk.jar 放入我的战争中。我通过右键单击战争-> 属性实现了这一点。然后Libraries -> Add Jar选择刚刚下载的 tomahawk.jar
  2. 像这样配置扩展过滤器:

     <filter>
        <filter-name>MyFacesExtensionsFilter</filter-name>
        <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
        <init-param>
            <param-name>uploadMaxFileSize</param-name>
            <param-value>20m</param-value>
        </init-param>
    </filter>
    
    <filter-mapping>
        <filter-name>MyFacesExtensionsFilter</filter-name>
        <servlet-name>Faces Servlet</servlet-name>
    </filter-mapping>
    
    <filter-mapping>
        <filter-name>MyFacesExtensionsFilter</filter-name>
        <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
    </filter-mapping>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    

    确保扩展过滤器的 servlet-name 值与 Faces servlet 的名称相匹配。

  3. 添加了此导入xmlns:t="http://myfaces.apache.org/tomahawk"

问题可能与您导入库的方式有关。

于 2015-04-27T17:36:57.830 回答
0

你在 web.xml 的末尾有这个吗?

    <load-on-startup>1</load-on-startup>
</servlet>

您的代码中似乎缺少(第 3 步)

您还应该检查 servlet 部分是否重复。

这对我来说可以。

于 2012-08-02T20:52:33.910 回答