Как: использовать FileUpload.setFileUploadListener (MethodBinding) с методом Expression - PullRequest
2 голосов
/ 19 апреля 2010

У меня проблема с программным добавлением объекта 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 Ответ

2 голосов
/ 19 апреля 2010

Устаревание не обязательно является технической проблемой. Код все еще будет работать. Устаревание - это только предупреждение о том, что рассматриваемый класс / метод подлежит удалению в будущем и что API необходимо обновить, чтобы отразить изменения. В данном конкретном случае необходимо обновить библиотеку RichFaces, а не ваш код. Посмотрите вокруг, если это уже упоминалось / сообщалось в RichFaces Issueracker , а если нет, то сообщите об этом, возможно, они будут спешить с этим.

Ожидайте взлома самого источника RichFaces, и нет способа заставить его работать с улучшенным MethodExpression. Просто согласитесь или добавьте строку @SuppressWarnings("deprecated") к коду.

...