我遇到了以下问题:
Primefaces remoteCommand没有执行,是否依赖于我的portlet的生命周期?
<h:form id="controllayer">
.
.
.
<p:remoteCommand name="updatePageId" actionListener="#{formView.updatePageId}" />
</h:form>
<script>
var pageID;
Liferay.on('eventFire', function(event)
{
console.log("Recieved");
console.log(event.name);
pageID = event.name;
update();
});
function update() {
console.log("Recieved PageID: " + pageID);
updatePageId({newPageId: pageID});
}
</script>
我也尝试过没有参数,但即使这样也行不通。
@SessionScoped
@ManagedBean(name="formView")
public class MainViewBean implements PagesUploadCallback, PageUploadCallback, PageActionCallback, Serializable
{
.
.
.
public void updatePageId()
{
LOG.info("Update Page ID");
String pageIdString = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("newPageId");
long pageId = Long.valueOf(pageIdString);
LOG.debug("Setting Page: " + pageId);
pageService.setActivePage(pageId);
}
.
.
.
}
永远不会调用我的JavaCode。
答案 0 :(得分:2)
<p:remoteCommand name="docheck"
process="@form,box1,box2"
update="box1,box2"
action="#{testBean.myAction()}" />
这是您需要如何更改代码的示例。这样可以解决您的问题。有关更多参考,请参考以下链接:
https://forum.primefaces.org/viewtopic.php?p=61733&sid=bf526834599e119a2d8a4e0f9a6989fb#p61733