2013-12-16 14 views
5

Tôi đang cố gắng kết nối với lớp hành động của mình bằng cách sử dụng URL như dưới đây trong Ajax. Nhưng nó không đi vào lớp hành động của tôi và thậm chí nó không hiển thị giá trị đã chọn bằng cách sử dụng $("#selectedCountry").val().Gọi hành động bằng cách sử dụng URL Ajax trong 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..!!") 
    });   
} 

mã JSP của tôi như sau:

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

My struts.xml:

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

Bạn không có phần tử có id 'selectedCountry'. –

+0

Bạn đã thử một doubleelect, một trong hai struts hoặc jQuery? –

+0

Ngay cả khi tôi đã thử bằng cách giữ ID đã chọn, nhưng không có kết quả nào @ Aleksandr M – kumarc

Trả lời

3

Để ánh xạ một hành động để phương pháp này bạn nên làm một cái gì đó giống như

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

tên hành động không có phần mở rộng hành động và kết quả theo mặc định được đặt tên là "thành công", đường dẫn đến JSP phải tuyệt đối ở đây.

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

Cảm ơn bạn @Roman C – kumarc

0

struts2-json-plugin-2.x.x.jar tập tin cho phép bạn sắp đặt từng thuộc tính lớp Action trong đó có phương thức getter và setter vào một đối tượng JSON.

buộc JAR

tất cả các thanh chống 2 lọ cốt lõi

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

Xem đầy đủ ví dụ http://www.websparrow.org/tutorials/struts/how-to-call-action-class-using-ajax-in-struts2

Các vấn đề liên quan