0

私は持っています

def exception = request.exception.stackTraceLines

Groovyコントローラーで。exceptionJavaScriptでの値を取得するにはどうすればよいですか。

4

3 に答える 3

1

これを修正するための複数のオプションがあります。javascriptを使用するとき、私は通常、エラーメッセージ/スタックトレースを保持できるラッパーを使用します。エラー処理をどこでどのように実行するかによって異なります。例:

def book = new Book(params)
book.validate()

render (contentType: "text/json") {[
    "data": book,
    "errors": book.hasErrors() ? book.errors : null
]}

次に、JSONを取得するときに「エラー」に値があるかどうかを確認して、たとえば入力にエラーがあるかどうかを判断できます。(Elvis演算子もおそらく機能します、book.errors?:null)JavaScriptで通常定義するエラーコールバックで処理するその他の(キャッチされていない)例外。(ほとんどの場合、jQuery(この場合はmalsup jquery.form.jsを使用))

$(function() {
  $("form").live("submit", function() {
    $(this).ajaxSubmit({
      error: function (msg) {
        /* Catch hard errors here (500's) */
        alert("Error occurred: " + msg);
      },
      success: function(wrapper) {
         if (wrapper.errors != null) {
            /* Handle model errors here */
         } else {
            /* Parse data here */
            var book = wrapper.data;
         }
      }
    });
    return false;
});
于 2012-10-08T21:50:08.350 に答える
1

このように返品に例外を追加する場合。

flash.message = message(exception: 'Error: xxx');

あなたはこのようにそれを得ることができます

<div class="message" role="status"> ${flash.message} </div>

${yourflash.your_var_name}を使用するだけです

于 2012-10-08T14:54:35.150 に答える
0

これもできます

render(template:"book",model:[book:theBook, exception:exception])

またはこのように(試していない、うまくいくかどうかわからない)

render(template:"book",model:[book:theBook, exception:exception!=null?exception:""])

次に、このようにGSPからアクセスします

${exception.getMessage()}
于 2012-10-08T15:25:55.197 に答える