Primefaces的fileUpload组件使用

primefaces Advanced 模式上传,在IE下基本上只能传四百M以下的,具体的特别准确的数字我没有试验过,但是我自己用的时候,500以上的,IE浏览器肯定会卡死。Chrome和FF没事。 用Simple 模式的话,与浏览器的最大可上传文件体积相当(也就是IE8及以下是两个G。)

        1、首先是使用环境配置:正常的Primefaces开发环境就不多说了,网上多的很。说下专门用于fileUpload的几点。

a. 进行web.xml配置:除了创建Primefaces时系统自动提供的东西外,需要在工程的WEF-INF/web.xml里加入以下几行内容:

  1. <span style="font-size: 14px;">    <filter>    
  2.         <filter-name>PrimeFaces FileUpload Filter</filter-name>    
  3.         <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>    
  4.     </filter>            
  5.     <filter-mapping>    
  6.         <filter-name>PrimeFaces FileUpload Filter</filter-name>    
  7.         <servlet-name>Faces Servlet</servlet-name>    
  8.     </filter-mapping>    
  9.     <context-param>    
  10.         <param-name>primefaces.THEME</param-name>    
  11.         <param-value>marstor</param-value>    
  12.     </context-param>  </span>  
<span style="font-size:14px;">    <filter>  
        <filter-name>PrimeFaces FileUpload Filter</filter-name>  
        <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>  
    </filter>          
    <filter-mapping>  
        <filter-name>PrimeFaces FileUpload Filter</filter-name>  
        <servlet-name>Faces Servlet</servlet-name>  
    </filter-mapping>  
    <context-param>  
        <param-name>primefaces.THEME</param-name>  
        <param-value>marstor</param-value>  
    </context-param>  </span>

新增加,如果用的最新的primefaces4.0版本的话,需要在上述信息后加入:

  1. <context-param>  
  2.     <param-name>primefaces.UPLOADER</param-name>  
  3.     <param-value>commons</param-value>  
  4. </context-param>  
    <context-param>
        <param-name>primefaces.UPLOADER</param-name>
        <param-value>commons</param-value>
    </context-param>

      



这个原文复制过去就行了,我一朋友在用的时候把

  1. <span style="font-size: 14px;"><servlet-name>Faces Servlet</servlet-name>  </span>  
<span style="font-size:14px;"><servlet-name>Faces Servlet</servlet-name>  </span>
里Faces Servlet两个单词首字母小写了,结果上传无法使用害我用了整半天时间检查。

b. 必要的jar包准备  commons-fileupload-1.2.1.jar commons-io-2.0.1.jar (直接点进去可下载)。这两个文件根据配置不同有的需要放在WEF-INF/lib下一份,有的需要放在{tomctHome}/lib里一份(个人建议一个里面放一份,省得事多)。

c.做完上面的东西后重启一下tomcat。

d.编写fileUpload的代码,注意 mode 要advanced模式的(simple模式的也不好看,也不好调)。

  1. <span style="font-size: 14px;"><p:fileUpload fileUploadListener="#{upload.fileUpload}" id="upLoad2"   
  2.                               auto="true"  label="导入"  update="RegisterInfo"  mode="advanced"  
  3.                               style="text-align: center; width: 800px; height: 40px; " /></span>  
<span style="font-size:14px;"><p:fileUpload fileUploadListener="#{upload.fileUpload}" id="upLoad2" 
                              auto="true"  label="导入"  update="RegisterInfo"  mode="advanced"
                              style="text-align: center; width: 800px; height: 40px; " /></span>
e.后台正常编写就是了。。里面加个sout,看是不是能把东西打印出来。

           2、在做Primefaces时发现另一个东西,就是primefaces的组件可以通过调整实际页面的css来调整其显示效果。也就是我们可以选择部分显示组件而非全部显示组件。还以这个fileUpload组件为示例。正常的 auto="true"模式的组件显示效果如图:
而我做出来效果如图:看,后面的那个灰的bar,和下面的白框都不见了。实际上我在这个页面的css里加入了如下内容:

  1. <span style="font-size: 14px;">.ui-fileupload .start {  
  2.     display: none;  
  3. }  
  4. .ui-fileupload .cancel {  
  5.     display: none;  
  6. }  
  7. .ui-fileupload .progress {  
  8.     display: none;  
  9. }  
  10.   
  11.   
  12. .fileupload-content{  
  13.     display: none;  
  14. }  
  15.   
  16. .fileupload-buttonbar{  
  17.     visibility: hidden;  
  18. }  
  19.   
  20. .ui-corner-buttom{  
  21.     display: none;  
  22. }  
  23.   
  24. .fileinput-button{  
  25.     visibility: visible;  
  26. }</span>  
<span style="font-size:14px;">.ui-fileupload .start {
    display: none;
}
.ui-fileupload .cancel {
    display: none;
}
.ui-fileupload .progress {
    display: none;
}


.fileupload-content{
    display: none;
}

.fileupload-buttonbar{
    visibility: hidden;
}

.ui-corner-buttom{
    display: none;
}

.fileinput-button{
    visibility: visible;
}</span>
说白了无论什么组件,实际执行到页面里就是一堆html代码。我们用火狐开发者分析这个组件的所以元素,可以看到这个组件的所以组成,然后用css把不想看到的东西屏蔽掉就OK了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值