gpt4 book ai didi

java - JSF 和 Primefaces - RemoteCommand 无法正常工作

转载 作者:行者123 更新时间:2023-11-28 15:46:53 25 4
gpt4 key购买 nike

我正在尝试在我的应用程序中实现 primefaces 的 RemoteCommand 标签,但不知何故它并不像文档所说的那样工作。

我想要实现的内容:我有几个具有不同布局的页面,但所有页面都使用相同的 JSF 模板。 (基本上模板的内容发生了变化)。不过,不同的页面应该自动加载,一个接一个,一个接一个,彼此之间有一定的间隔。

<p:remoteCommand name="remoteSwitchPage" actionListener="#{circuitBean.redirect()}" autoRun="false"/>

这是我的 JSF 代码,它应该为我提供一个名为 remoteSwitchPage() 的 JavaScript 方法,但它没有!它应该也运行,因为我说过autoRun="false",但是它在加载时运行!在调用方法remoteSwitchPage之后() 它应该通过 Java 呈现另一个页面(这个实际上是有效的。不知何故,JSF 在离开括号时找不到重定向方法,这就是我放置它们的原因)。

总结如下:

  1. JavaScript 没有为我提供 remoteSwitchPage()
  2. remoteCommand 在页面加载时运行,它不应该运行!
  3. 离开括号时,JSF 将找不到我的 ManagedBean 方法 resize()

你们知道我在这里做错了什么吗?

我正在使用 primefaces 4.0JSF 2.1

最佳答案

如果您使用:

<p:remoteCommand name="remoteSwitchPage" actionListener="#{circuitBean.redirect}" />

JSF 将尝试查找 getRedirect,这就是为什么您应该使用 CircuitBean.redirect()

编辑:我认为你应该使用action而不是actionListener

这是我的示例代码(经过测试):

HTML:

<a href="#" onclick="logoutAccount()"><i class="fa fa-sign-out fa-fw"></i> Logout</a>

HTML 的另一部分(页面末尾):

<h:form prependId="false">
<p:remoteCommand action="#{sessionMB.logout()}" name="logoutAccount" />
</h:form>

bean :

public void logout() {
account = null;
logged = false;
FacesUtil.addInfoGrowl(MessageProvider.getMessage("message.logout.success"), null);
FacesUtil.redirectToPage("", true);
}

redirectToPage 方法:

public static boolean redirectToPage(String completePath, Boolean keepMessages) {
try {
FacesContext.getCurrentInstance().getExternalContext().getFlash().setKeepMessages(keepMessages);
FacesContext.getCurrentInstance().getExternalContext().redirect(SimegoUtil.redirectProject() + completePath);

return true;
} catch (IOException ex) {
FacesUtil.addErrorGrowl(MessageProvider.getMessage("message.redirectFail"), null);
return false;
}
}

所以,会是这样的:
点击>调用remoteCommand Javascript >调用bean >重定向到另一个页面

我只是没有得到你说的模板部分,如果我能提供更多帮助,请告诉我,希望你能修复它。

关于java - JSF 和 Primefaces - RemoteCommand 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21942116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com