操作方法:将FileUpload.setFileUploadListener(MethodBinding)与MethodExpression一起使用

时间:2010-04-19 11:08:06

标签: jsf richfaces

我遇到了以编程方式将FileUploadListener对象添加到HtmlFileUpload(rich:fileupload)的问题:

这有效但不推荐使用:

HtmlFileUpload upload = new HtmlFileUpload();
upload.setFileUploadListener(FacesContext.getCurrentInstance()
    .getApplication().createMethodBinding(
    "#{actions.storedObjects["+this.getActionID()+"].uploadEventListener}",
    new Class[] { UploadEvent.class }));

Javadoc说我应该使用MethodExpression,但setFileUploadListener()只接受FileUploadListener,它是MethodBinding的一个实例,但不是MethodExpression。 我正在使用RichFaces 3.3.2 SR1。

提前致谢!

1 个答案:

答案 0 :(得分:2)

弃用不一定是技术问题。代码仍然有效。弃用仅仅是一个警告,有关的类/方法将来可能会被删除,并且需要更新API以反映更改。在这种特定情况下,需要更新RichFaces库,而不是代码。看看RichFaces issuetracker中是否已经提及/报告过这个问题,如果没有,那么报告一个,也许他们会更加着急。

期望自己破解RichFaces源代码,没有办法让它与改进的MethodExpression一起使用。只需使用它或在代码中添加@SuppressWarnings("deprecated")行。