1

私のコントローラーメソッドは次のようになります。

@RequestMapping(value = "/com/uData.htm", method = RequestMethod.GET)
public @ResponseBody String getData(HttpServletRequest request, 
      HttpServletResponse response, @RequestParam(value="sn", required=true) String sn, 
      @RequestParam(value="serv", required=true) String serv,
      @RequestParam(value="date", required=false) String date) throws IOException{
try {
      Srring data =...;
      if(condition == false) {
         throw new IOException("my exception message");
    }
...
...

    } catch (IOException ie) {
        response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, ie.getMessage());
        response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
        response.getWriter().write(ie.getMessage());
        response.flushBuffer();
    }

  return data;
}

そして、ここに私のjQuery ajaxがどのように見えるかがあります

$.ajax({
    cache: false,
    url: "/com/uData.htm",
    dataType: 'json',
    data: {"sn": sn, "serv": selServ},
    success: function(dt){
    result = dt;
  },
    error: function(jqXHR, textStatus, errorThrown) {
      if(jqXHR.responseText !== '') {
          alert(textStatus+": "+jqXHR.responseText);
    } else {
          alert(textStatus+": "+errorThrown);
       }  
     }
  });

返されるカスタム例外メッセージは、私の JSP で

alert(textStatus+": "+jqXHR.responseText);

カスタム例外メッセージ ("my exception message") を JSP に返すにはどうすればよいですか?

4

2 に答える 2

1

それをメソッドの結果に入れます。を返す代わりに、との 2 つのプロパティStringを持つオブジェクトを返します。Stringresultexception

そうすれば、クライアント側のsuccessコードで例外を調べることができます。

詳細が必要な場合は、フィールドを追加します (例外の種類や例外が発生した理由の追加情報など)。

于 2013-09-03T07:04:48.987 に答える
0

response.responseText をオブジェクトに解析して、ExceptionMessage (カスタム例外メッセージ) だけを取得できるようにしてください。

            var message = $.parseJSON(jqXHR.responseText);
            alert(textStatus+': '+message.ExceptionMessage);

私のコード サンプルでは、​​jQuery.parseJSON メソッドを使用して JSON からオブジェクトを抽出します。

于 2014-05-28T22:16:51.800 に答える