FacesContext.getCurrentInstance возвращает значение null в демонстрационной версии диалогового окна PrimeFaces Dialog Framework

Я хочу запустить демонстрационную демонстрационную платформу Dialog Framework - Данные на GlassFish 4.1 и NetBeans 8.0.2. Я копирую / вставляю код из витрины. Но я столкнулся с NullPointerException в этой строке:

FacesContext.getCurrentInstance().addMessage(null, message);

Код ошибки

java.lang.NullPointerException
    at Beans.DFView.onCarChosen(CalculateBean.java:27)

Я прочитал, что у меня должно быть другое приложение сервлета для связи с клиентом, но я не могу найти ссылку с руководством, как это сделать.

Я прочитал, что я должен добавить этот код в face-config.xml:

<application>
    <action-listener>org.primefaces.application.DialogActionListener</action-listener>
    <navigation-handler>org.primefaces.application.DialogNavigationHandler</navigation-handler>
    <view-handler>org.primefaces.application.DialogViewHandler</view-handler>
</application>

Ссылка на сообщение Натальи Зон: Primefaces JSF null, возвращенный из RequestContext.getCurrentInstance() Здесь я читаю кое-что о Push Server: Developer.am

1 ответ

Во-первых, моя ошибка была в том, что мой код был грязным, потому что я пробовал так много решений, разрабатывая веб-приложения, вы должны быть в два раза более чистыми, чем что-то делать в настольных приложениях, потому что этот тип приложений более чувствителен.

Кроме того, после того как я прочитал http://balusc.omnifaces.org/2006/06/communication-in-jsf.html, я собираюсь изучить технологию сервлетов и попытаться сделать это.

PS: решение было простое, очистите ваш код, добавьте его в ваш face-config:

<application>
    <action-listener>
        org.primefaces.application.DialogActionListener
    </action-listener>
    <navigation-handler>
        org.primefaces.application.DialogNavigationHandler
    </navigation-handler>
    <view-handler>
        org.primefaces.application.DialogViewHandler
    </view-handler>
</application>

и это должно бежать. Если нет, создайте новый проект WebApplication и скопируйте / вставьте весь код из витрины, а если он не запущен, повторите воспроизведение.

Другие вопросы по тегам