如何通过Ajax请求传递参数

如何通过Ajax请求传递参数,ajax,primefaces,jsf-2.2,Ajax,Primefaces,Jsf 2.2,我的目标是保存当前光标位置,并为我们输入的每个新按钮添加新值。为了实现这一目标,我尝试发送ajax请求,并在每次焦点离开输入字段时更新我的后端。 在通过支持bean操作方法调用之前,我成功地调用了java脚本函数。但由于某些原因,我在发出ajax请求时无法看到请求参数值 <p:inputText id="testing1" value="#{dropDownView.city}"> <p:ajax event="keyup" onstart="callOnAjax();"

我的目标是保存当前光标位置,并为我们输入的每个新按钮添加新值。为了实现这一目标,我尝试发送ajax请求,并在每次焦点离开输入字段时更新我的后端。 在通过支持bean操作方法调用之前,我成功地调用了java脚本函数。但由于某些原因,我在发出ajax请求时无法看到请求参数值

<p:inputText id="testing1" value="#{dropDownView.city}">
 <p:ajax event="keyup"  onstart="callOnAjax();"  listener="#{dropDownView.assignCity()}"  execute="@this"  update="out1" >
  <f:param value="test" name="#{articlePromo.promocionArticuloId}"/> 
   <h:inputHidden id="x" value="#{bean.x}" />
   </p:ajax>

我也尝试了使用hidden的所有不同方法。但我在控制器中看不到值。我甚至硬编码了请求参数值和hidden属性值。但仍然没有成功。非常感谢任何帮助。

可能重复@Perdomoff:我正试着使用jsf和primefaces标记来执行此操作。谢谢可能重复的有人能给我推荐一种使用jsf标记扫描的技术吗?有人请告诉我我是否遗漏了任何东西,或者在primefaces 5.3和jsf 2.2中这不是正确的方法。谢谢
<script type="text/javascript">
  function callOnAjax(){
$("#detailsPanel").bind("keydown keypress mousemove", function() {
  var $form = jQuery(this).closest("form");
$form.find("input[id$=':x']").val($(this).caret().start);
  alert("Current position: " + $(this).caret().start);
});         
} 
</script>
public void assignCity()
{
    System.out.println("positon of x"+getX()+"position of y"+y);
    FacesContext context = FacesContext.getCurrentInstance();
    String id = context.getApplication().evaluateExpressionGet(context, "#{articlePromo.promocionArticuloId}", String.class);
    city =country;
}