2011-05-08 213 views
3

如何将参数传递给a4j:javascript中的jsFunction,我想调用 categoryChanged以及任何我放在那里的东西 - 即使显式的String,参数在bean侧也不可见。将参数传递给a4j:函数

这里是js代码:

$(function() { 
    $("#resizable").resizable(); 
    $("#selectable").selectable({stop: function(event, ui) { 
     $(".ui-selected", this).each(function() { 
      var index = $("#selectable li").index(this); 
      categoryChanged("Test String"); 
      categoryChanged(this); 
      categoryChanged(ui.id); 
      categoryChanged($("#selectable li").value(this)); 
     }); 
     // ajax call to render the content 
    }}); 
    $("#menu").buttonset(); 

}); 

和A4J函数定义:

<a4j:jsFunction name="categoryChanged" 
     action="#{appexplorerbean.categoryChanged}" limitToList="true" 
     oncomplete="" reRender="appexplrtable">   
<a4j:actionparam name="newCategory" /> 
</a4j:jsFunction> 

回答

5

您需要分配参数来设置。

<a4j:jsFunction name="categoryChanged" 
     action="#{appexplorerbean.categoryChanged(newCategory)}" limitToList="true" 
     oncomplete="" reRender="appexplrtable">   
    <a4j:actionparam name="newCategory" assignTo="#{newCategory} /> 
</a4j:jsFunction> 

或直接设置该值。

<a4j:jsFunction name="categoryChanged" 
      action="#{appexplorerbean.categoryChanged}" limitToList="true" 
      oncomplete="" reRender="appexplrtable">   
    <a4j:actionparam name="newCategory" assignTo="#{appexplorerbean.newCategory} /> 
</a4j:jsFunction> 

希望它仍然可以帮助

+0

是否你的第二个解决方案要求'newCategory' getter和setter方法在bean? – prageeth 2012-10-29 13:56:14

+0

是的,这些都是必需的。 – Ununoctium 2013-03-19 07:02:34