2011-05-08 53 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