2012-09-12 20 views
3

我們有一個使用Struts2-jQuery框架進行Ajax操作的Struts2應用程序。如下所示在Struts2-jQuery中使用Autocompleter(sj:autocompleter)標籤時,它向Struts2 Action jsonlanguages發出ajax請求。Struts2結果類型http頭500在sj中不觸發onErrorTopics:autocompleter

<s:url var="remoteurl" action="jsonlanguages"/> 
<sj:autocompleter 
    id="languages" 
    href="%{remoteurl}" 
    delay="50" 
    loadMinimumCount="2" 
/> 

我們已經定義了結果錯誤類型爲這次行動如下,觸發內部服務器錯誤,而不是它得到完成了作爲一個成功的Ajax請求。

<result name="ERROR" type="httpheader"> 
    <param name="status">500</param> 
    <param name="headers.a">a custom header value</param> 
    <param name="headers.b">another custom header value</param> 
</result> 

問題:現在這種做法會觸發其他所有Struts2的,jQuery的標籤,如sj:select ...等的"onErrorTopics",但它似乎並沒有被觸發同樣在sj:autocompleter。有沒有人遇到過這個問題?如果是這樣,處理來自autocompleter的ajax請求期間發生的異常的最佳方法是什麼?

回答

1

我認爲它不可能在視圖上執行異常處理,直到您自己檢查返回的json的有效性。

BTW autocompleter不會返回任何結果,而是一個json對象。

您可以驗證在javascript或jquery中通過操作返回的json。