我遇到了以编程方式将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。
提前致谢!
答案 0 :(得分:2)
弃用不一定是技术问题。代码仍然有效。弃用仅仅是一个警告,有关的类/方法将来可能会被删除,并且需要更新API以反映更改。在这种特定情况下,需要更新RichFaces库,而不是代码。看看RichFaces issuetracker中是否已经提及/报告过这个问题,如果没有,那么报告一个,也许他们会更加着急。
期望自己破解RichFaces源代码,没有办法让它与改进的MethodExpression
一起使用。只需使用它或在代码中添加@SuppressWarnings("deprecated")
行。