我们有一个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请求期间发生的异常的最佳方法是什么?
答案 0 :(得分:1)
我认为在您自己检查返回的json的有效性之前,无法在视图中进行异常处理。
BTW autocompleter不会返回任何结果,而是返回json对象。
您可以在javascript或jquery中通过操作验证返回的json。