【问题标题】:Primefaces fileupload filter when web.xml not used未使用 web.xml 时的 Primefaces 文件上传过滤器
【发布时间】:2012-12-16 04:31:58
【问题描述】:

我想在我的 jboss 7 Web 应用程序中使用 primefaces 文件上传控件。由于我不使用任何 web.xml(Java EE 6 不需要),我如何指定使文件上传正常工作所需的过滤器?我应该为此创建一个 web.xml 还是可以使用注释代替?

提前谢谢你!

【问题讨论】:

    标签: file-upload jsf-2 primefaces jboss7.x servlet-filters


    【解决方案1】:

    从技术上讲,您确实应该自己创建一个web.xml 文件。这并不难,只需使用以下启动模板在/WEB-INF/web.xml 中创建一个文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
        version="3.0">
    
        <!-- Your config here. -->
    
    </web-app>
    

    如果您真的很认真并且对“XML 样板”有很大的反感,那么您总是可以自制一个过滤器类,它使用所需的 @WebFilter 注释扩展 PrimeFaces 文件上传过滤器。

    package com.example;
    
    import javax.servlet.annotation.WebFilter;
    import org.primefaces.webapp.filter.FileUploadFilter;
    
    @WebFilter("*.jsf") // Or @WebFilter(servletNames={"Faces Servlet"})
    public class AnnotatedPrimeFacesFileUploadFilter extends FileUploadFilter {
        // NOOP.
    }
    

    【讨论】:

    • 我想我可以提出的论点,使用注释方法是避免在一个中心位置(文件)配置很多不同的东西。
    • @Aksel:过滤器不能按注释排序。因此,如果您需要按特定顺序调用过滤器,您仍然需要求助于“good 'ol”web.xml
    • 谢谢,这是一个需要注意的有用限制。我正要将它们移到注释中。至少会三思而后行
    • 非常感谢 BalusC,我确实使用了 web.xml,以防将来需要使用多个过滤器。
    • 请注意,在我的情况下,PrimeFaces 用户指南 3.4 提出的过滤器配置不起作用。我不得不用&lt;url-pattern&gt;/*&lt;/url-pattern&gt; 替换&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;。谁能解释为什么我需要进行此修改?谢谢
    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 2015-08-28
    • 2013-03-10
    • 2015-07-01
    • 2013-08-12
    相关资源
    最近更新 更多