Вы неправильно поняли цель <a4j:jsFunction>
. Он автоматически генерирует функцию JavaScript, которую можно затем вызывать из любого кода JavaScript, который вы видите.
Ваш пример,
<a4j:jsFunction name="myfunc">
<a4j:actionparam name="param" assignTo="#{MyBean.myfield}"/>
</a4j:jsFunction>
будет автоматически генерировать следующую функцию
<script>
function myfunc(param) {
// Here some specific JSF Ajax script which assigns "param"
// to a managed bean property #{MyBean.myfield}
}
</script>
Вы не должны определить это сами. Вам нужно только вызвать самостоятельно из некоторого кода JavaScript в другом месте. Например,
<span onclick="myfunc(4)">click here to set 4 in MyBean.myfield</span>
или
<script>
function someOtherFunction() {
var param = 4;
myfunc(param);
}
</script>
который, в свою очередь, будет использоваться как
<span onclick="someOtherFunction()">click here to call someOtherFunction() which will in turn set 4 in MyBean.myfield</span>
Смотри также: