i would like to know if there is a way to fire a jsf managed bean method (with an AjaxBehaviorEvent type parameter: the same triggered when using f:ajax) directly by using a jqu
jQuery ajax request and JSF ajax request uses different js library's , I don't think there is a point in trying to mix those to too much...
If you whish to fire a JSF managed bean action from jQuery you better use a hidden h:commandButton
for that purpose...
JSF:
<h:commandButton id="someId" action="#{someBean.someMethod}" style="display:none">
<f:ajax render="someId" execute="someId"/>
</h:commandButton>
if you want to pass some more hidden args you can add some more hidden JSF components ids in the hidden h:commandButton
execute
attribute, that way their corresponding properties will be updated on server side...
js
$("#someId").click();
On the other side , if you want to use managed bean data in servlets that corresponds to your jQuery calls you can always access that JSF managed data, like this : JSF - get managed bean by name
In the same vein as pointed out by islandguy, if you use Primefaces, you woud use the <p:remoteCommand/>
command, as follows :
<script type="text/javascript">
doAwesomeness();
</script>
with :
<p:remoteCommand name="doAwesomeness"
actionListener="#{awesomeBean.awesomeMethod}"
oncomplete="jsToExecuteOnAjaxSuccess()" />
Hope this helps..
Here you go:
<script type="text/javascript">
doAwesomeness();
</script>
In your page:
<a4j:jsFunction name="doAwesomeness" action="#{awesomeBean.awesomeMethod}"/>
Good luck!