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

标签 java javascript jsf-2 primefaces

我正在尝试在我的应用程序中实现 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/

相关文章:

java - 继承错误

java - RelativeLayout : works fine on a 1. 6+API 中的 Horizo​​ntalScrollView,但不是 1.5 API

javascript - React中的增量 float 、字符串转换、状态表示

javascript - 如何选择多个div id

javascript - 悬停过渡停止初始过渡

jsf-2 - 没有与 PrimeFaces 的命名空间相关联的 TagLibrary

java - 如何更改 java 中的输入源(语言)(而不是使用 Shift+alt)?

java - 将/assets/image.png 转换为 byte[]

java - JSF2 : Pass objects from one requestscoped bean into another Requestscoped bean?

java - :selectOneMenu send me previus value