2013-12-11 98 views
1

我已經提到這個鏈接Ajax action calling但我不能 您好使用ajax進行操作調用。 這是我的代碼。如何在Struts2中獲得Ajax響應

$.ajax({ 
      type:'POST', 
      dataType:'json', 
      url:'ajaxAction?ajax_docno='+entry1+'-'+entry2+'-'+entry3+'-'+entry4, 
     success:function(data,textStatus,jqXHR) 
        { 
        if(jqXHR.status==200) 
         alert("success"); 
         } 
        if(jqXHR.status==500) 
         { 
          alert("Fail"); 
          } 
       } 


       } 
        ); 

MY struts.xml的

<action name="ajaxAction" class="com.AjaxActionClass" method="checkExistence" > 
     <result name="success" type="httpheader"> 
       <param name="status" >200</param> 
     </result> 
     <result name="fail" type="httpheader"> 
       <param name="status" >500</param> 
     </result> 

    </action> 

在我的動作類

public String checkExistence() 
    { 
     //DB checkup 
     if exists return success; 
     if not exists return fail; 
     } 

這是工作的罰款

在我的動作類我檢查數據是否存在在DB a nd向jSP返回一些值以顯示消息。

我的問題是如果數據不在數據庫中,如何將變量傳遞給jsp以向USER顯示一些alert消息。

回答

1

謝謝你的答覆我不什麼不對您的答案,但我能做到這一點,現在使用下面的代碼

$.ajax({ 
     type:'POST', 
     dataType:'json', 
     url:'ajaxAction?ajax_docno='+entry1+'-'+entry2+'-'+entry3+'-'+entry4, 
     statusCode:{500:function(){alert("The document number is alredy Exist");}, 
         200:function(){alert("Good Work !! You can proceed.");}      } 


      } 
       ); 
2

有3種方法:

您可以發送JSP或JSON或只是狀態碼。

JSP

$.ajax({ 
... 
success:function(data){ 
    alert(data);   //In case of JSP 
} 

<action name="myaction" class="actions.MyAction"> 
    <result name="success">/success.jsp</result> 
    <result name="error">/error.jsp</result> 
</action> 

JSON

$.ajax({ 
... 
success:function(data){ 
    var json=eval(data);  //Untested, but should give an idea - JSON 
    alert(json.message); 
} 


<action name="myaction" class="actions.MyAction"> 
    <result name="success" type="json"/> 
    <result name="error" type="json"/> 
</action>   <!-- for JSON result, don't forget to extend json-default in the package--> 

狀態

$.ajax({ 
... 
success:function(data,textStatus,jqXHR){ 
    if(jqXHR.status==200){ 
     alert('success'); 
    }else if(jqXHR.status==201){ 
     alert('failure'); 
    } 
} 


<action name="myaction" class="actions.MyAction"> 
    <result name="success" type="httpheader"> 
     <param name="status">200</param> 
    </result> 
    <result name="error" type="httpheader"> 
     <param name="status">201</param> 
    </result> 
</action> 

(Jquery的Ajax的文檔](http://api.jquery.com/jQuery.ajax/

+0

我需要創建任何getter和setter爲'sataus' PARAM? 我試過第三種情況。但沒有運氣,我現在會發布我的整個代碼。 – Babel

+0

我無法顯示警報消息...... :( – Babel

+0

我不知道你的答案有什麼問題我可以使用下面的代碼 'statusCode:{500:function(){alert(「文檔號是「);}, \t \t \t 200:function(){alert(」Good Work !!您可以繼續。「);}' – Babel