0

通过单击注销调用javascript函数后p:remotecommand未执行。

这是我的 XHTML 代码:

<script type="text/javascript">
function logoutAccount() {
    debugger;
    var txt = "eeeeeeeeeeeeeee";
    command([{name:'param',value:txt}]); //This is important
}
</script>

<a href="#" onclick="logoutAccount()"><i class="fa fa-sign-out fa-fw"></i> Logout</a>   
<p:remoteCommand name="command" action="#{MyiaTaskBean.method}" />

这是我在 Java bean 中的代码:

public void method() {
    String value = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("param");
    System.out.print("value is::::::::::::::::::::::"+value);
}

我试图通过动作侦听器更改动作,但没有奏效。

4

1 回答 1

1

p:remoteCommand需要在表格内。

下面的代码在我的环境中工作(你还没有说你正在使用什么 JSF/PF 版本):

<script>
function logoutAccount() {
    console.log('logoutAccount fired!');
    var txt = 'some text';
    command([{name:'param',value:txt}]);
}
</script>

<a href="#" onclick="logoutAccount()"><i class="fa fa-sign-out fa-fw"></i> Logout</a>
<h:form>
    <p:remoteCommand name="command" action="#{testBean.method}" />
</h:form>

使用您的 java 代码,结果是:

值是::::::::::::::::::::::一些文本

于 2020-12-16T15:05:02.640 回答