作者mc18 (无道德事业集团)
看板java
标题[J2EE] Richfaces+Seam的档案上传元件心得
时间Tue Aug 26 01:53:21 2008
因为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
1F:推 infinitlee:seam 本身就有档案上传的功能, 以及可以用conversation 08/26 09:49
2F:→ infinitlee:用JSF的人不代表会用seam, seam只是把他们都整合起来的 08/26 09:51
3F:→ infinitlee:framework, JSF只是view层的工具还是有很多可以取代他 08/26 09:52
4F:→ mc18:感谢前辈指点, conversation的确是个solution 08/26 14:02
5F:推 TonyQ:好文我推 XD 08/26 14:39