Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Struts2中获得Ajax响应_Ajax_Jsp_Struts2 - Fatal编程技术网

如何在Struts2中获得Ajax响应

如何在Struts2中获得Ajax响应,ajax,jsp,struts2,Ajax,Jsp,Struts2,我已经提到了这个链接,但我不能 您好,使用ajax进行操作调用。 这是我的密码 $.ajax({ type:'POST', dataType:'json', url:'ajaxAction?ajax_docno='+entry1+'-'+entry2+'-'+entry3+'-'+entry4, success:function(data,textStatus,jqXHR)

我已经提到了这个链接,但我不能 您好,使用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>
这很好用

在我的action类中,我检查数据库中是否存在数据,并将一些值返回给jSP以显示消息

我的问题是,如果数据不在数据库中,如何将变量传递给jsp,以便向用户显示一些
警报
消息

有三种方法:

您可以发送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>
$.ajax({
...
成功:功能(数据){
警报(数据);//如果是JSP
}

)谢谢您的回复,我不知道您的答案有什么问题,但我现在可以使用以下代码来完成

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


           }
               );

我需要为该
sataus
param创建任何getter和setter吗?我已经尝试了第三种情况。但我现在不想发布我的全部代码。我不知道你的答案中有什么错误,我可以使用以下代码
statusCode:{500:function(){alredy Exist(“文档号总是存在”);},200:function(){alert(“干得好!!你可以继续。”);}
@looser你的答案只是jquery Ajax的另一个变体。无论如何,我很高兴你解决了它。@looser:“+1感谢你的贡献”。我看不到+1。@looser
+1
意味着向上投票。
$.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>
  $.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.");}                     }


           }
               );