在此场景中,您寻求从 JavaScript 向 p:remoteCommand 传递值。以下是实现方法,具体取决于您的 PrimeFaces 版本:
自版本 3.3 以来,语法已经演变。根据 PrimeFaces 用户指南,以下是传递参数的方法:
<code class="javascript">increment([{name:'x', value:10}, {name:'y', value:20}]);</code>
在支持 bean 中,通过 @ManagedProperty 注释访问这些参数:
<code class="java">@ManagedProperty("#{param.x}") private int x; @ManagedProperty("#{param.y}") private int y;</code>
在 3.3 版本之前,语法有所不同:
<code class="javascript">increment({param1:'val1', param2:'val2'});</code>
在支持 bean 中检索这些参数与上述相同。
或者,您可以在范围更广的 bean 中使用 FacesContext 获取参数:
<code class="java">Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); int x = Integer.valueOf(params.get("x")); int y = Integer.valueOf(params.get("y"));</code>
要将多个值传递给单个参数,请使用以下语法:
<code class="javascript">functionName([{name:'foo', value:'one'}, {name:'foo', value:'two'}, {name:'foo', value:'three'}]);</code>
访问这些值使用 @ManagedProperty 或 FacesContext 的支持 bean 中的值:
<code class="java">@ManagedProperty("#{paramValues.foo}") private String[] foos;</code>
以上是如何在 PrimeFaces 中从 JavaScript 向 p:remoteCommand 传递参数?的详细内容。更多信息请关注PHP中文网其他相关文章!