前端页面
<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();
}
}
}
分享到:
相关推荐
1. **PrimeFaces组件**:PrimeFaces提供了多种组件,如数据表(DataTable)、图表(Chart)、日期选择器(Calendar)、文件上传(FileUpload)、树形结构(Tree)、对话框(Dialog)等。在示例代码中,你可以看到...
PrimeFaces的核心在于其丰富的组件集,这些组件包括但不限于数据网格、图表、日历、文件上传/下载、对话框、滑块、树形结构等。这些组件不仅具有丰富的功能,还支持触摸设备,因此能够适应各种屏幕尺寸。例如,`p:...
1. **组件丰富**:PrimeFaces 提供了上百个预先封装好的UI组件,如数据表(DataTable)、图表(Chart)、日历(Calendar)、文件上传(FileUpload)等,这些组件都经过精心设计,易于使用且高度可定制。 2. **响应...
9. FileUpload:允许用户上传文件到服务器。 10. Growl:这是一个用于显示通知消息的组件,类似于桌面应用程序中的弹出通知。 11. InputText、InputTextarea:这些是基础表单组件,提供了文本输入和文本区域输入...
- FileUpload:文件上传组件,提供用户友好的方式上传文件到服务器。 - Growl:用于显示信息提示,支持自定义样式和动画效果。 除了上述组件,PrimeFaces还提供了其他丰富的组件和功能,包括布局组件、菜单组件、...
BlockUI用于阻止用户与页面其他部分进行交互,直到某个任务完成,例如上传文件或处理数据。 ##### 3.7 Button Button组件是一个标准按钮,可以触发动作或事件。 ##### 3.8 Cache Cache组件用于缓存数据,以减少...
19. FileUpload:用于上传文件的组件。 20. Growl:用于显示消息提示框的组件。 此外,还介绍了其他多种组件,如打印机、进度条、单选按钮、评分组件、远程命令、可调整大小的组件、行编辑等。每一个组件都有详细的...
例如,我们可以利用PrimeFaces的FileUpload组件来实现文件上传功能,用户可以通过浏览器直接选择文件并将其上传到服务器。 HTML、CSS和JavaScript作为前端的基础技术,各自扮演着关键角色。HTML负责页面结构,CSS...
除了组件和图表,PrimeFaces还包括了一些实用工具,如Drag&Drop(拖放)、Effect(动画效果)、FileUpload(文件上传)等,以及用于页面布局和设计的Layout和PanelGrid组件。 在文档的最后,提到了一些高级特性,如...
**2.11.1 FileUpload** - 文件上传组件,用于上传文件。 **2.11.2 FileDownload** - 文件下载组件,用于下载文件。 **2.11.3 IdleMonitor** - 屏幕凝滞检测组件,用于检测用户的活动状态。 **2.11.4 Terminal** - ...
本篇文章将深入探讨如何使用PrimeFaces的`<p:fileUpload>`组件在JSF应用中实现实时、便捷的文件上传。 首先,让我们了解`<p:fileUpload>`的基本用法。在JSF页面中,你可以通过以下方式引入这个组件: ```html ...
最后,指南会涵盖一些高级特性,如文件上传和下载、图表生成、富文本编辑器以及与CDI和Managed Beans的集成。这些功能帮助开发者构建功能强大的企业级应用。 总的来说,《PrimeFaces用户指南6.0》是PrimeFaces学习...
这些组件包括数据网格、图表、日期选择器、文件上传、对话框等。而PrimeFaces Extensions则在这些基础上添加了更多创新和定制化的功能,如高级图表、GMap集成、PDF报告生成等。 PrimeFaces Extensions的关键组件...
- **FileUpload**:文件上传组件。 - **FileDownload**:文件下载组件。 - **IdleMonitor**:屏幕活动监测。 - **Terminal**:终端模拟器。 12. **辅助功能**: - **AjaxEngine**:增强 Ajax 功能的引擎。 ...
- **FileUpload**:文件上传组件,支持多文件上传。 - **Focus**:聚焦组件,控制页面元素的焦点。 - **Galleria**:图片画廊组件,支持幻灯片展示。 - **GMap**:Google地图组件,用于嵌入地图。 - **...
为了实现JSF的大文件上传,开发者通常需要借助第三方库,如Apache Commons FileUpload或者PrimeFaces的FileUpload组件。这些组件提供了分块上传的能力,将大文件切割成小块进行传输,从而避免一次性加载整个文件到...
1. **组件丰富**:PrimeFaces包含上百个UI组件,如数据表、图表、对话框、滑块、日期选择器、树形结构、文件上传/下载、编辑器等,几乎涵盖了Web开发中常见的所有需求。 2. **响应式设计**:PrimeFaces支持移动优先...
- **2.11.1 FileUpload**: 文件上传。 - **2.11.2 FileDownload**: 文件下载。 - **2.11.3 IdleMonitor**: 屏幕活动监测。 - **2.11.4 Terminal**: 终端模拟器。 **2.12 辅助功能** - **2.12.1 AjaxEngine**: AJAX...
7. **富媒体处理**:PrimeFaces 提供了文件上传、图像查看和编辑等功能。理解和扩展这些组件涉及文件处理、图像操作和浏览器兼容性问题。 8. **移动设备支持**:PrimeFaces Mobile 提供了专为移动设备优化的组件集...