我正在尝试使用
传递参数号码:remoteCommand
不幸的是,当我在bean方法中检索paramer时,我总是得到null。
我的代码有什么问题吗?
这是我的页面代码:
<a href="#" onclick="rc([{'d':'01'}])">01</a>
<p:remoteCommand name="rc" update=":myform:messages" actionListener="#{mybean.changedaybar}" />
这是bean方法:
public void changedaybar() {
Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
String param = params.get("d");
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Executed"+param, "Using RemoteCommand."));
}
答案 0 :(得分:3)
您使用的是哪个PrimeFaces版本?这很重要,因为在PrimeFaces 3.3中,将参数从JavaScript函数传递到p:remoteCommand
的方式已经发生了变化。
您将在以下帖子中看到正确的语法:https://stackoverflow.com/a/18510102/2118909但为方便起见,这里是摘要。
来自PrimeFaces 3.3
传递参数
远程命令可以通过以下方式发送动态参数;
increment([{name:'x', value:10}, {name:'y', value:20}]);
<a href="#" onclick="rc([{name: 'd', value:'01'}])">01</a>
在PrimeFaces 3.3之前
传递参数
远程命令可以通过以下方式发送动态参数;
increment({param1:'val1', param2:'val2'});
<a href="#" onclick="rc({d:'01'})">01</a>