`
阅读更多
前端页面
<p:dataTable id="patchfiledatatable" var="patch" value="#{patchBean.files}" dynamic="true"
emptyMessage=""  paginator="true" rows="10" paginatorPosition="top">
<f:facet name="header">
<table>
<tr>
   <td style="text-align:left;width:85%;padding-top:5px;">查询结果</td>
   <td style="width:15%">
<p:commandLink
update=":uploadfile-model-form" oncomplete="patchInstallInfo.show();">
<h:graphicImage value="/images/icons/recover.gif"
styleClass="more-icon" title="导入补丁" />
<h:outputText value="导入补丁" />
</p:commandLink>
        <p:spacer width="10"/>
   </td>
</tr>
</table>
</f:facet>
</p:dataTable>

弹出框页面代码:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<p:outputPanel>

<h:form id="uploadfile-model-form"  enctype="multipart/form-data">
<p:growl id="messages" showSummary="true" showDetail="true"/>
<p:dialog widgetVar="patchInstallInfo" id="uploadDiaId" header="导入补丁" modal="true" width="500" height="200" dynamic="false">
  <p:fileUpload fileUploadListener="#{patchBean.importPatchFile}" ajax="false" oncomplete="patchInstallInfo.hide()" multiple="true" update=":patchForm,:uploadfile-model-form:messages" />
</p:dialog>
</h:form>
</p:outputPanel>
</ui:composition>

后台代码
@ManagedBean(name = "patchBean")
@SessionScoped
public class TreeBean{ 
//导入补丁文件
public void importPatchFile(FileUploadEvent event){
FacesMessage msg = null;
try {
//新建文件输入流并对它进行缓冲
InputStream in = event.getFile().getInputstream();
BufferedInputStream inBuff = new BufferedInputStream(in);
// 新建文件输出流并对它进行缓冲
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
request.setCharacterEncoding("UTF-8");
File oldFile = new File(CURRENT_FILE_PATH+"\\"+event.getFile().getFileName());
if(!oldFile.exists()){
FileOutputStream output = new FileOutputStream(CURRENT_FILE_PATH+"\\"+event.getFile().getFileName());
BufferedOutputStream outBuff=new BufferedOutputStream(output);
// 缓冲数组         
byte[] b = new byte[1024 * 5];         
int len;        
while ((len =inBuff.read(b)) != -1) {
outBuff.write(b, 0, len);   
}
// 刷新此缓冲的输出流
outBuff.flush();
inBuff.close();     
outBuff.close();      
output.close();  
in.close();
files.clear();
this.getSubFiles(CURRENT_FILE_PATH);
msg = new FacesMessage(FacesMessage.SEVERITY_INFO,"操作成功",null);
}else{
msg = new FacesMessage(FacesMessage.SEVERITY_ERROR,"该文件已存在",null);
}
FacesContext.getCurrentInstance().addMessage("uploadfile-model-form:messages", msg);
} catch (Exception e) {
System.out.println("上传出异常了");
msg = new FacesMessage(FacesMessage.SEVERITY_ERROR,"操作失败",null);
FacesContext.getCurrentInstance().addMessage("uploadfile-model-form:messages", msg);
e.printStackTrace();
}
}
}
分享到:
评论

相关推荐

    primefaces cookbook示例代码

    1. **PrimeFaces组件**:PrimeFaces提供了多种组件,如数据表(DataTable)、图表(Chart)、日期选择器(Calendar)、文件上传(FileUpload)、树形结构(Tree)、对话框(Dialog)等。在示例代码中,你可以看到...

    primeFaces.zip

    PrimeFaces的核心在于其丰富的组件集,这些组件包括但不限于数据网格、图表、日历、文件上传/下载、对话框、滑块、树形结构等。这些组件不仅具有丰富的功能,还支持触摸设备,因此能够适应各种屏幕尺寸。例如,`p:...

    primefaces 源代码

    1. **组件丰富**:PrimeFaces 提供了上百个预先封装好的UI组件,如数据表(DataTable)、图表(Chart)、日历(Calendar)、文件上传(FileUpload)等,这些组件都经过精心设计,易于使用且高度可定制。 2. **响应...

    primefaces_user_guide_6_2

    9. FileUpload:允许用户上传文件到服务器。 10. Growl:这是一个用于显示通知消息的组件,类似于桌面应用程序中的弹出通知。 11. InputText、InputTextarea:这些是基础表单组件,提供了文本输入和文本区域输入...

    primefaces开发文档

    - FileUpload:文件上传组件,提供用户友好的方式上传文件到服务器。 - Growl:用于显示信息提示,支持自定义样式和动画效果。 除了上述组件,PrimeFaces还提供了其他丰富的组件和功能,包括布局组件、菜单组件、...

    primefaces指南

    BlockUI用于阻止用户与页面其他部分进行交互,直到某个任务完成,例如上传文件或处理数据。 ##### 3.7 Button Button组件是一个标准按钮,可以触发动作或事件。 ##### 3.8 Cache Cache组件用于缓存数据,以减少...

    primefaces_users_guide_4_0_edtn2.pdf

    19. FileUpload:用于上传文件的组件。 20. Growl:用于显示消息提示框的组件。 此外,还介绍了其他多种组件,如打印机、进度条、单选按钮、评分组件、远程命令、可调整大小的组件、行编辑等。每一个组件都有详细的...

    JSF+primefaces 网盘实现代码前端

    例如,我们可以利用PrimeFaces的FileUpload组件来实现文件上传功能,用户可以通过浏览器直接选择文件并将其上传到服务器。 HTML、CSS和JavaScript作为前端的基础技术,各自扮演着关键角色。HTML负责页面结构,CSS...

    primefaces_users_guide_3_5手册

    除了组件和图表,PrimeFaces还包括了一些实用工具,如Drag&Drop(拖放)、Effect(动画效果)、FileUpload(文件上传)等,以及用于页面布局和设计的Layout和PanelGrid组件。 在文档的最后,提到了一些高级特性,如...

    PrimeFaces学习教程

    **2.11.1 FileUpload** - 文件上传组件,用于上传文件。 **2.11.2 FileDownload** - 文件下载组件,用于下载文件。 **2.11.3 IdleMonitor** - 屏幕凝滞检测组件,用于检测用户的活动状态。 **2.11.4 Terminal** - ...

    JSF页面,<p:fileUpload组件文件上传

    本篇文章将深入探讨如何使用PrimeFaces的`&lt;p:fileUpload&gt;`组件在JSF应用中实现实时、便捷的文件上传。 首先,让我们了解`&lt;p:fileUpload&gt;`的基本用法。在JSF页面中,你可以通过以下方式引入这个组件: ```html ...

    primefaces_user_guide_6_0.zip_primefaces

    最后,指南会涵盖一些高级特性,如文件上传和下载、图表生成、富文本编辑器以及与CDI和Managed Beans的集成。这些功能帮助开发者构建功能强大的企业级应用。 总的来说,《PrimeFaces用户指南6.0》是PrimeFaces学习...

    PrimeFaces中文教程

    46. **FileUpload**: 文件上传组件,允许用户上传文件。 47. **Focus**: 聚焦组件,用于控制元素的焦点。 48. **Fragment**: 片段组件,用于在页面上包含和使用可重用的UI片段。 49. **Galleria**: 图库组件,...

    PrimeFaces Extensions.zip

    这些组件包括数据网格、图表、日期选择器、文件上传、对话框等。而PrimeFaces Extensions则在这些基础上添加了更多创新和定制化的功能,如高级图表、GMap集成、PDF报告生成等。 PrimeFaces Extensions的关键组件...

    PrimeFaces中文详细教程,工具书,含详细代码

    - **FileUpload**:文件上传组件。 - **FileDownload**:文件下载组件。 - **IdleMonitor**:屏幕活动监测。 - **Terminal**:终端模拟器。 12. **辅助功能**: - **AjaxEngine**:增强 Ajax 功能的引擎。 ...

    primefaces

    - **FileUpload**:文件上传组件,支持多文件上传。 - **Focus**:聚焦组件,控制页面元素的焦点。 - **Galleria**:图片画廊组件,支持幻灯片展示。 - **GMap**:Google地图组件,用于嵌入地图。 - **...

    JSF上传 JSF大文件上传 JSF上传代码 JSF上传源代码

    为了实现JSF的大文件上传,开发者通常需要借助第三方库,如Apache Commons FileUpload或者PrimeFaces的FileUpload组件。这些组件提供了分块上传的能力,将大文件切割成小块进行传输,从而避免一次性加载整个文件到...

    PrimeFacesJSF框架JavaServerFaces组件套件

    1. **组件丰富**:PrimeFaces包含上百个UI组件,如数据表、图表、对话框、滑块、日期选择器、树形结构、文件上传/下载、编辑器等,几乎涵盖了Web开发中常见的所有需求。 2. **响应式设计**:PrimeFaces支持移动优先...

    PrimeFaces教程v0.5.doc

    - **2.11.1 FileUpload**: 文件上传。 - **2.11.2 FileDownload**: 文件下载。 - **2.11.3 IdleMonitor**: 屏幕活动监测。 - **2.11.4 Terminal**: 终端模拟器。 **2.12 辅助功能** - **2.12.1 AjaxEngine**: AJAX...

Global site tag (gtag.js) - Google Analytics