2013-12-16 104 views
5

我想通過使用下面的Ajax中的URL連接到我的動作類。但它不會進入我的行動課,甚至不會使用$("#selectedCountry").val()顯示選定的值。在Struts 2中使用Ajax URL調用動作

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..!!") 
    });   
} 

我的JSP代碼如下:

<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> 

struts.xml

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

您沒有帶'selectedCountry' id的元素。 –

+0

你嘗試了一個doubleselect,無論是struts或jQuery? –

+0

即使我試圖通過保持selectedCountry ID,但沒有結果@亞歷山大M – kumarc

回答

3

要映射的操作的方法,你應該這樣做

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

動作名稱應該是沒有動作擴展的,默認情況下導致名爲「success」,JSP的路徑應該是絕對的。

調用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

謝謝@Roman C – kumarc

0

Struts2的JSON的 - 插件 - 2.x.x.jar文件可以用來序列具有getter和setter成JSON對象中的Action類屬性。

所需的JAR

所有的Struts 2個的核心罐

的struts2-JSON-插件,2.xxjar

公地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"}} 
}); 

查看完整示例http://www.websparrow.org/tutorials/struts/how-to-call-action-class-using-ajax-in-struts2