Liferay 7 JSF 操作未触发
Liferay 7 JSF actions not triggered
我有一个用 JSF 2 Richfaces 编写的 liferay portlet 应用程序部署在 weblogic 下。
页面呈现良好,似乎 EL 解析器做得很好。
然而,只要我发起任何类型的提交,页面就会重新加载,什么也没有发生。
我在网上找到了几个解决方案,大部分归结为这个解决方案:
Why isn't Liferay Faces processing JSF portlet action events?
我还在 Liferay 的官方 JSF richfaces 展示应用程序中找到了这些 liferay-porlet.xml
设置,所以我已经尝试过了。
问题是,一旦我添加:
<requires-namespaced-parameters>false</requires-namespaced-parameters>
我的 liferay-porlet.xml
portlet 变得不可见,所以我无法验证它是否解决了问题。
有没有人遇到过类似的问题?有没有人有什么建议?我还查看了 post:
中提出的建议
action method is not called in JSF
None 似乎适用于我的情况。我已经精简了我的申请。这似乎是 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
您有两个选择:
将以下内容添加到您的 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 也可以)。
将以下内容添加到 WEB-INF/liferay-portlet.xml
的 <portlet>
部分:
<requires-namespaced-parameters>false</requires-namespaced-parameters>
您似乎尝试了 #2,但您可能将配置包含在了错误的位置。这很可能导致错误,进而导致您的 portlet 部署失败。检查 DTD 以确保您的配置顺序正确:https://docs.liferay.com/ce/portal/7.0-latest/definitions/liferay-portlet-app_7_0_0.dtd.html
我有一个用 JSF 2 Richfaces 编写的 liferay portlet 应用程序部署在 weblogic 下。
页面呈现良好,似乎 EL 解析器做得很好。
然而,只要我发起任何类型的提交,页面就会重新加载,什么也没有发生。
我在网上找到了几个解决方案,大部分归结为这个解决方案:
Why isn't Liferay Faces processing JSF portlet action events?
我还在 Liferay 的官方 JSF richfaces 展示应用程序中找到了这些 liferay-porlet.xml
设置,所以我已经尝试过了。
问题是,一旦我添加:
<requires-namespaced-parameters>false</requires-namespaced-parameters>
我的 liferay-porlet.xml
portlet 变得不可见,所以我无法验证它是否解决了问题。
有没有人遇到过类似的问题?有没有人有什么建议?我还查看了 post:
中提出的建议action method is not called in JSF
None 似乎适用于我的情况。我已经精简了我的申请。这似乎是 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
您有两个选择:
将以下内容添加到您的
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 也可以)。
将以下内容添加到
WEB-INF/liferay-portlet.xml
的<portlet>
部分:<requires-namespaced-parameters>false</requires-namespaced-parameters>
您似乎尝试了 #2,但您可能将配置包含在了错误的位置。这很可能导致错误,进而导致您的 portlet 部署失败。检查 DTD 以确保您的配置顺序正确:https://docs.liferay.com/ce/portal/7.0-latest/definitions/liferay-portlet-app_7_0_0.dtd.html