问题:
是否可以将值传递给 PrimeFaces p来自 JavaScript 的 :remoteCommand,如何完成?
答案:
是的,可以从 JavaScript 将参数传递给 p:remoteCommand。语法和方法取决于 PrimeFaces 版本:
自 PrimeFaces 3.3 起,语法已更改如下:
<code class="javascript">increment([{name:'x', value:10}, {name:'y', value:20}]);</code>
这允许传递参数名称的多个值。单值参数仍然可以像以前一样访问:
@ManagedProperty("#{param.x}") private int x; @ManagedProperty("#{param.y}") private int y;
在 PrimeFaces 3.3 之前,语法是:
<code class="javascript">increment({param1:'val1', param2:'val2'});</code>
在后台bean,参数可以通过以下方式访问:
@ManagedProperty("#{param.param1}") private String param1; @ManagedProperty("#{param.param2}") private String param2;
在 PrimeFaces 3.3 或更高版本中,可以指定具有多个值的参数,如下所示:
<code class="javascript">functionName([{name:'foo', value:'one'}, {name:'foo', value:'two'}, {name:'foo', value:'three'}]);</code>
这些参数可以在请求作用域的 bean 中访问:
@ManagedProperty("#{paramValues.foo}") private String[] foos;
或者在更广泛作用域的 bean 的方法中访问:
<code class="java">Map<String, String[]> paramValues = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterValuesMap(); String[] foos = paramValues.get("foo");</code>
其他资源:
以上是如何在 PrimeFaces 中从 JavaScript 向 p:remoteCommand 传递值?的详细内容。更多信息请关注PHP中文网其他相关文章!