2016-09-23 41 views
0

我有總部設在Java/JEE項目。我也使用JSP Page。在我的Java代碼中,我使用struts 2來執行操作,當我遇到錯誤時,我必須返回error以便我的JSP執行返回。 在我的JSP中,即使返回爲error,該函數始終執行success。 任何解決方案,請?調用使用Ajax URL的動作的Struts 2 - 錯誤回報不考慮

我的代碼的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 !"); 
        }      
     }); 
    }    
} 
+0

的可能的複製[Struts的2 - 的Ajax - 錯誤返回不被認爲](http://stackoverflow.com/questions/ 39643665 /支桿-2- Ajax的錯誤返回-是 - 不考慮) –

回答

0

我不是最新的與Java/JEE,但我知道jQuery的一點點。

當過的HTTP標頭返回的StatusCode 2XX的success回調使用(最好的辦法是200女巫意味着OK

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

如果你想jQuery的使用error回調,你必須操縱所述HTTP標頭以返回的StatusCode 4XX(客戶機錯誤)或5XX(服務器錯誤)