Действия Liferay 7 JSF не вызваны - PullRequest
0 голосов
/ 13 июня 2018

У меня есть приложение с портлетом liferay, написанное на JSF 2 Richfaces, развернутое в weblogic.

Страницы отображаются нормально, и кажется, что EL resolver хорошо справляется со своей задачей.

Однако, как толькоЯ инициирую любой вид отправки, страница просто перезагружается, и ничего не происходит.

Я нашел несколько решений в Интернете, большинство из которых сводились к этому решению:

Почему нетLiferay Faces обрабатывает события действия портлета JSF?

Я также обнаружил эти настройки liferay-porlet.xml в официальном приложении Liferay для демонстрации JSF richfaces, поэтому я уже попробовал их.

Проблема в том, что как только я добавляю:

<requires-namespaced-parameters>false</requires-namespaced-parameters>

На мои liferay-porlet.xml портлеты становятся невидимыми, поэтому я не могу проверить, решает ли это проблему.

Кто-нибудь сталкивался?похожая проблема?У кого-нибудь есть предложения?Я также рассмотрел предложения, сделанные в этом посте:

метод действия не вызывается в JSF

Ни один из них, похоже, не применим к моему делу.Я сократил свое приложение до костей.Это похоже на проблему с Liferay.

Используемые версии:

Liferay 7.0
RichFaces 4.5.17
com.liferay.faces.bridge.impl 4.1.1
com.liferay.faces.bridge.ext 5.0.2
com.liferay.faces.bridge.api 4.1.0
javax.faces 2.2.14

1 Ответ

0 голосов
/ 14 июня 2018

У вас есть два варианта:

  • Добавьте следующее в ваш файл WEB-INF/web.xml, чтобы JSF правильно обрабатывал параметры пространства имен:

    <context-param>
        <param-name>com.sun.faces.namespaceParameters</param-name>
        <param-value>true</param-value>
    </context-param>
    

    Некоторые библиотеки компонентов могут не обрабатывать параметры пространства имен, но я вполне уверен, что PrimeFaces, IceFaces и RichFaces могут (возможно, BootsFaces и ButterFaces тоже).

  • Добавитьв разделе <portlet> вашего WEB-INF/liferay-portlet.xml:

    <requires-namespaced-parameters>false</requires-namespaced-parameters>
    

Похоже, вы пробовали # 2, но вы, возможно, включили конфигурациюв неправильном месте.Это может привести к ошибке, которая в свою очередь приводит к сбою развертывания вашего портлета.Проверьте DTD, чтобы убедиться, что ваша конфигурация находится в правильном порядке: https://docs.liferay.com/ce/portal/7.0-latest/definitions/liferay-portlet-app_7_0_0.dtd.html

...