Struts2结果类型http标头500不会触发sj:autocompleter中的onErrorTopics

时间:2012-09-12 01:59:55

标签: jquery error-handling struts2 struts2-jquery

我们有一个Struts2应用程序,它使用Struts2-jQuery框架进行Ajax操作。在Struts2-jQuery中使用Autocompleter(sj:autocompleter)标记时,如下所示,它向Struts2 Action jsonlanguages发出ajax请求。

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

我们已为此操作定义了一个结果类型ERROR,如下所示,以触发内部服务器错误,而不是将其作为成功的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>

问题 :现在这种方法会触发"onErrorTopics" ..等所有其他Struts2-jQuery标记中的sj:select,但它不会似乎在sj:autocompleter中触发了同样的事情。有人遇到过这个问题吗?如果是这样,处理来自自动完成器的ajax请求期间发生的异常的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

我认为在您自己检查返回的json的有效性之前,无法在视图中进行异常处理。

BTW autocompleter不会返回任何结果,而是返回json对象。

您可以在javascript或jquery中通过操作验证返回的json。