2013-01-23 23 views
6

मैं जानना चाहता हूं कि एक जेएसएफ प्रबंधित बीन विधि को आग लगाने का कोई तरीका है (एक AjaxBehaviorEvent प्रकार पैरामीटर के साथ: f का उपयोग करते समय भी ट्रिगर किया गया: AJAX) सीधे एक jquery AJAX सर्वर अनुरोध का उपयोग कर। वैसे, आईएमए जेएसएफ डेवलपर और मुझे जावा ईई के साथ jquery AJAX का उपयोग सर्वर-साइड फ्रेमवर्क के रूप में करने के बारे में कोई उदाहरण नहीं मिला, मुझे मिले सभी उदाहरण php..so के साथ थे मैं ऐसा करने के बारे में एक पूरा उदाहरण प्राप्त करना चाहता हूं। मुझे लगता है कि अन्य कामकाज शायद क्लाइंट पक्ष पर jquery के साथ एक कमांड लिंक्स जमा किया जा रहा है और उस कॉल के माध्यम से पैरामीटर पास कर रहा है, लेकिन मैं पूर्व समाधान पसंद करता हूं और मैं इसे काम करना चाहता हूं।jsf प्रबंधित बीन विधि (एक AjaxBehaviorEvent श्रोता हैंडलर) को कॉल करने के लिए jquery AJAX का उपयोग करना

मदद के लिए बहुत बहुत धन्यवाद!

उत्तर

7

ये रहा:

<script type="text/javascript"> 

    doAwesomeness(); 

</script> 
अपने jQuery तुम हमेशा उपयोग कर सकते हैं कि JSF कामयाब डेटा, इस तरह कहता है

अपने पृष्ठ में:

<a4j:jsFunction name="doAwesomeness" action="#{awesomeBean.awesomeMethod}"/> 

गुड लक! इस प्रकार

+0

Thnx भयानक stackoverflow सदस्य :) – Bardelman

+1

लेकिन यह शुद्ध जेएसएफ नहीं है। टैग [रिचफेसेस] से आता है (http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/a4j_jsFunction.html)। – lucasvc

6

jQuery ajax अनुरोध और JSF ajax अनुरोध का उपयोग करता है अलग js लाइब्रेरी की, मुझे नहीं लगता कि बहुत ज्यादा करने के लिए उन मिश्रण करने की कोशिश में एक मतलब नहीं है कि ...

आप आग एक JSF कामयाब सेम कार्रवाई whish हैं jQuery से आप बेहतर उस उद्देश्य के लिए एक छिपा हुआ h:commandButton का उपयोग करें ...

JSF:

<h:commandButton id="someId" action="#{someBean.someMethod}" style="display:none"> 
    <f:ajax render="someId" execute="someId"/> 
</h:commandButton> 

आप कुछ और छिपा JSF घटक आईडी छिपा h:commandButton +०१२३७०९८४४ में जोड़ सकते हैं अगर आप कुछ और अधिक छिपा आर्ग पास करना चाहते हैंविशेषता, कि जिस तरह से उनकी संगत गुण सर्वर साइड पर अद्यतन किया जाएगा ...

js

$("#someId").click(); 

दूसरी ओर, आप सर्वलेट्स कि से मेल खाती है में कामयाब रहे सेम डेटा उपयोग करना चाहते हैं JSF - get managed bean by name

+0

आपके उत्तर के लिए धन्यवाद लेकिन मुझे अभी भी लगता है कि jQuery AJAX और JSF AJAX भी विभिन्न जेएस लाइब्रेरी का उपयोग करते हैं, एक अनुरोध को एक से दूसरे में बनाया जा सकता है क्योंकि मुझे लगता है कि उनमें से दोनों वास्तव में हैं HTTP अनुरोध से निपटने के लिए ताकि वे संवाद कर सकें .. – Bardelman

+0

अच्छी तरह से, अब मैं आत्मसमर्पण कर रहा हूं .. मैं फायरबग पर पता लगाने के लिए टाई कर रहा था कि अनुरोध URL के साथ कमांड लिंक्स कैसे बनाया गया है, क्योंकि मैं jquery-ajax के साथ ऐसा कर सकता हूं, मुझे यह मिला: – Bardelman

+0

j_idt7 = j_idt7 और j_idt7% 3Aj_idt11 = मेरी और j_idt7% 3Aj_idt13 = मेरी और s_var1 = & s_proclength = & s_taskId = & javax.faces.ViewState = -1257726806850207849% 3A3895641171480667070 और javax.faces.source = j_idt7% 3Aj_idt50 और javax.faces.partial.event = क्लिक करें और javax.faces.partial.execute = j_idt7% 3Aj_idt50 और javax.faces.partial.render = j_idt7% 3Acontent और taskname = marytask और javax.faces.behavior.event = & क्लिक javax.faces.partial।AJAX = true – Bardelman

2

उसी तरह से के रूप में islandguy से कहा, यदि आप Primefaces उपयोग करते हैं, आप <p:remoteCommand/> आदेश का उपयोग woud,:

<script type="text/javascript"> 
     doAwesomeness(); 
</script> 

साथ:

<p:remoteCommand name="doAwesomeness" 
      actionListener="#{awesomeBean.awesomeMethod}" 
      oncomplete="jsToExecuteOnAjaxSuccess()" /> 

आशा इस मदद करता है ..