2013-12-11 4 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이 나는 데이터의 존재를 확인하고 내 액션 클래스에서

잘 작동

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

MY 액션 클래스에서
<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> 

DB에서 메시지를 표시하기 위해 jSP로 일부 값을 반환합니다.

내 문제는 데이터가 DB에없는 경우 일부 alert 메시지를 표시하기 위해 jsp에 변수를 전달하는 방법입니다.

답변

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

세 가지 방법이 있습니다.

어느 쪽이든 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와 아약스 문서 ()

+0

내가 그'sataus'의 PARAM을 위해 어떤 getter와 setter를 생성해야합니까 다음 코드를 사용하여 지금은 그렇게 할 수 있어요 응답을 주셔서 감사합니다? 제 3의 경우를 시도했습니다. 그러나 행운을 빌어 이제는 전체 코드를 게시 할 것입니다. – Babel

+0

경고 메시지를 표시 할 수 없습니다 : ( – Babel

+0

다음 코드를 사용하여 답변을 할 수 없습니다. 'statusCode : {500 : function() {alert ("문서 번호는 alrighty Exist ");} \t \t \t 200 : function() {alert ("Good Work !! 진행할 수 있습니다. ");} – Babel

관련 문제