2013-12-16 4 views
5

Sto tentando di connettermi alla mia classe di azioni utilizzando l'URL come di seguito in Ajax. Ma non sta andando nella mia classe di azione e anche non mostra il valore selezionato usando $("#selectedCountry").val().Chiamare un'azione utilizzando l'URL Ajax in Struts 2

function getstates(){   
    alert($("#selectedCountry").val());   
    $.ajax({ 
     type : "GET", 
     url : "/ThirdTask/selectstate.action", 
     dataType : 'text', 
     data : "name="+$("#selectedCountry").val(), 
     success : function(){ 
     $('statesdivid').html(); 
     }, 
     error : alert("No values found..!!") 
    });   
} 

Il mio codice JSP come segue:

<s:select name="selectedCountry" list="{'india','china'}" onclick="getstates();"/></div> 
<div id="statesdivid"> 
<s:if test="%{#request.selectedstatenames != null}"> 
<s:select list="#request.selectedstatenames" name="selectedState"> 
</s:select> 
</s:if> 
</div> 

mio struts.xml:

<action name="selectstate.action" class="com.thirdtask.actions.SelectAction" method="selectstate"> 
<result name="success">selecttag.jsp</result> 
</action> 
+0

Non si dispone di un elemento con l'ID 'selectedCountry'. –

+0

Hai provato un doubleselect, o puntoni o jQuery? –

+0

Anche io ho provato mantenendo l'ID del paese selezionato, ma nessun risultato @ Aleksandr M – kumarc

risposta

3

Per map un'azione per il metodo che si deve fare qualcosa di simile

<action name="selectstate" class="com.thirdtask.actions.SelectAction" method="selectstate"> 
    <result>/selecttag.jsp</result> 
</action> 

nome dell'azione deve essere senza estensione di azione e il risultato di default è denominato "successo", il percorso per JSP dovrebbe essere assoluto qui.

Calling ajax

$.ajax({ 
    type : "GET", 
    url : "<s:url action='selectstate'/>", 
    dataType : 'text/javascript', 
    data : {'name' : $("#selectedCountry").text()}, 
    success : function(result){ 
     if (result != null && result.length > 0){ 
     $("statesdivid").html(result); 
     } 
    }, 
    error : function(xhr, errmsg) {alert("No values found..!!");} 
});   
+0

Grazie @Roman C – kumarc

0

Struts2-JSON-plugin-2.x.x.jar file consente di serializzare l'attributo di classe di azione che ha getter e setter in un oggetto JSON.

richiesti JAR

tutti i montanti 2 vasetti di base

Struts2-JSON-plugin-2.xxjar

commons-lang3-3.2.jar

$.ajax({ 
    type : "Method name(GET/POST)", 
    url : "url map to the action class", 
    success : {"Message on success"}, 
    error : {"Message on error"}} 
}); 

vedere il pieno esempio http://www.websparrow.org/tutorials/struts/how-to-call-action-class-using-ajax-in-struts2