p: fileIUpload не вызывает слушателя в liferay после обновлений - PullRequest
0 голосов
/ 30 апреля 2020

Я обновил свое приложение с primefaces 7.0 до 8.0 и liferay-ce-portal-7.1.2-ga3 до liferay-ce-portal-7.2.0-ga1 (сервер Tomcat) и jsf версии 2.2.18.

После этого обновления я заметил, что компонент p:fileUpload больше не работает нормально. До обновления я использовал атрибут fileUploadListener в компоненте p:fileUpload. Но этот атрибут недоступен в PrimeFaces версии 8.0, поэтому я изменил атрибут на listener

код ниже:

x html part

<p:fileUpload label="Upload" auto="true"
        styleClass="button" listener="#{loginBean.handleProfileImageUpload}"
        skinSimple="true" update="@all" mode="advanced"
        allowTypes="/(\.|\/)(gif|jpe?g|png)$/" fileLimit="1" />

часть боба

public void handleProfileImageUpload(FileUploadEvent event) {
        try {
            file = event.getFile();
            loggedInUser = UserLocalServiceUtil.updatePortrait(loggedInUser.getUserId(),
                    FileUtil.getBytes(file.getInputStream()));
            long portraitId = loggedInUser.getPortraitId();
            String tokenId = WebServerServletTokenUtil.getToken(loggedInUser.getPortraitId());
            String img_id_token = HttpUtil.encodeURL(DigesterUtil.digest(loggedInUser.getUuid()));

            profilePath = "image/user_" + ((loggedInUser != null) && loggedInUser.isFemale() ? "female" : "male")
                    + "_portrait?img_id=" + portraitId + "&img_id_token=" + img_id_token + "&t=" + tokenId;
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
...