我正在尝试做什么...
我想将响应消息发送回调用 jQuery AJAX 方法,然后我可以使用它来创建警告弹出消息。
我尝试使用 HttpServletResponse 方法:
sendError(int sc, java.lang.String msg)
问题...
不幸的是,这种方法将“msg”字符串值包装在一个更大的 HTML 字符串中——这显然是为了用作独立错误页面的内容。
--我希望只获取消息字符串本身(即,使用 jquery 对象方法 - 例如,“jqXHR”)。
我应该如何最好地做到这一点?(即,在没有 HTML“包装器”的情况下将消息返回到成功/失败方法)
...java服务器片段...
-
-
-
private List<MyDTO> performSearch(HttpSession session, HttpServletResponse resp)
{
try
{
// (code to inspect searchString, etc.)
//...forcing error for this test...
throw new Exception("bad request yaddah...yaddah...yaddah...");
}
catch (Exception e)
{
try
{
resp.sendError(HttpServletResponse.SC_NOT_FOUND, e.getMessage());
}
catch (Exception e)
{
e.printStackTrace();
}
}
return null;
}
-
-
-
... JQuery 客户端片段...
-
-
-
$.ajax({
type: "POST",
url: searchurl,
data: "searchString=" + searchString,
async: true,
success: function(jqXHR) {
alert("success");
},
error: function(jqXHR) {
alert("Error - bad search string used:" + jqXHR.responseText);
}
});
-
-
-
注意: 执行以下操作似乎可以正常工作,但是,我想知道是否有更好的方法将简单的消息字符串发送回 ajax 调用...
-
-
-
private List<MyDTO> performSearch(HttpSession session, HttpServletResponse resp)
{
try
{
// (inspect searchString, etc.)
//...forcing error for this test...
throw new Exception("bad request yaddah...yaddah...yaddah...");
}
catch (Exception e)
{
try
{
resp.setStatus(HttpServletResponse.SC_NOT_ACCEPTABLE);
resp.getWriter().write(e.getMessage());
resp.flushBuffer();
}
catch (Exception ex)
{
e.printStackTrace();
}
}
return null;
}
-
-
-
完成我想做的最简单/最好的方法是什么?
谢谢你的帮助!!!