在Struts 2中使用Ajax URL调用操作 - 不考虑错误返回

时间:2016-09-23 09:18:07

标签: jquery

我有一个基于Java/JEE的项目。我还使用JSP Page。在我的Java代码中,我使用struts 2执行操作,当我出错时,我必须返回error以便我的JSP执行返回。 在我的JSP中,即使返回success,函数也始终执行error的问题。 有什么解决方案吗?

我的代码Java对操作有影响:

@Action(value = "enableFlux", results = { @Result(type = TYPE_JSON) })
public String enableFlux() {
    //Another code here

    if (trameRetour == null) {
        LOGGER.error("Trame de retour est null!);
        return error;
    } 
    else {
        return success;
    }
}

我的JSP:

function enableFlux(image,idAbonnement) {       

    if(confirm("Confirmez-vous l\'activation du flux "+idAbonnement)==true){
        $.ajax({
                   type : "post",
                   url : '${pageContext.request.contextPath}/flux/enableFlux.action',
                   data : "idAbonnement="+idAbonnement,
                   contentType : "application/x-www-form-urlencoded; charset=UTF-8",
                   success : function(data, status, request) {                         
                       image.src = "${pageContext.request.contextPath}/styles/img/boutontrue.png";
                       $("#span"+data.abonnement.id).addClass("spanLabeltrue"); 
                       $("#span"+data.abonnement.id).removeClass("spanLabelfalse");
                   },
                   error : function(data, status, request){
                       alert ("Problème !");
                   }                     
         });
     }             
}

1 个答案:

答案 0 :(得分:0)

我不熟悉Java / JEE,但我对jQuery有点了解。

当HTTP-Header返回状态码2xx时,使用success回调(最好的方式是200个女巫意味着OK

https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

如果您希望jQuery使用error回调,您必须操纵HTTP-Header以返回状态码4xx(客户端错误)或5xx(服务器错误)