我刚刚将我的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);
}
}
答案 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"