因為JSF在file-upload這方面算是挺不便的,
我想在此分享一點點Richfaces fileUpload的實作心得..
先說明我用的套件版本:
richfaces-impl - 自己build的版本, 約是8月中的版本
richfaces-ui - 3.2.1
jboss-seam - 2.0.3 CR1
=============================================================
view端我想不用多說, 主要就指定好uploadListener就可以:
<rich:fileUpload
fileUploadListener="#{fileBean.uploadListener}"
immediateUpload="true"
maxFilesQuantity="10"
noDuplicate="true" />
重點在於接的後端, 如果不是在每次event發生時都處理完並persist該file時,
可以將fileBean宣告為stateful session bean.
以下為簡單的example:
@Stateful
@Scope(SESSION)
@Name("fileBean")
public class FileBean{
//略..
//用來暫存上傳檔案的list
private List<File> files;
//略..
public void uploadListener(UploadEvent event) throws IOException {
//這個method就是rich:fileUpload所指定的listener
//可以在這邊對檔案做一點處理, 例如先將這堆檔案padding到一個list去
files.add(event.getUploadItem().getFile());
//做個log記錄一下
log.info(event.getUploadItem().getFileName + " attached!!");
}
}
這樣當你處理完所有上傳的檔案後, 再對此session bean做一個最後處理的動作即可.
====================================================================
應該很多人知道了... 不過還是分享給各位JSF的受害者(誤) XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.83.24