将参数传递给primeface中的远程命令3.4.1

时间:2012-10-31 11:51:17

标签: primefaces primefaces-extensions

我刚刚将我的primefaces库从3.1.1升级到3.4.1,但遗憾的是无法从我的bean中的FacesContext的请求参数映射中获取参数。

以下是我的代码段。

xhtml文件:

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:p="http://primefaces.org/ui">

<h:head>
    <title>Facelet Title</title>
</h:head>   
<h:form>
    <p:remoteCommand name="setData" actionListener="#{serviceClass.setrealData()}"/>
</h:form>
 <script>
        $(document).ready(function(){
            setData({codes:'J203,J200,J212,J211,J210',fields:'SNAME,SPOT,PERC,POINTS'});
        });
 </script>
</html>

豆:

@ManagedBean
@SessionScoped

public class ServiceClass {

    /** Creates a new instance of ServiceClass */
    public ServiceClass() {
    }

    public void setrealData(){
        FacesContext fc = FacesContext.getCurrentInstance();
        Map map2 = fc.getExternalContext().getRequestParameterMap();
        String newCodes = (String) map2.get("codes");
        System.out.println("New codes ::"+newCodes);
    }
}

1 个答案:

答案 0 :(得分:0)

传递给setData javascript函数的参数不正确。你好像错放了分隔每个键值对的大括号。

应该是:

<script>
    $(document).ready(function(){
        setData([{codes:'J203,J200,J212,J211,J210'} , {fields:'SNAME,SPOT,PERC,POINTS'}]);
    });
</script>

使用此格式,您应该能够从请求图中检索(代码和字段)。 代码应该生成字符串"J203,J200,J212,J211,J210",而字段应该生成"SNAME,SPOT,PERC,POINTS"

相关问题