私は持っています
def exception = request.exception.stackTraceLines
Groovyコントローラーで。exception
JavaScriptでの値を取得するにはどうすればよいですか。
これを修正するための複数のオプションがあります。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;
});
このように返品に例外を追加する場合。
flash.message = message(exception: 'Error: xxx');
あなたはこのようにそれを得ることができます
<div class="message" role="status"> ${flash.message} </div>
${yourflash.your_var_name}を使用するだけです
これもできます
render(template:"book",model:[book:theBook, exception:exception])
またはこのように(試していない、うまくいくかどうかわからない)
render(template:"book",model:[book:theBook, exception:exception!=null?exception:""])
次に、このようにGSPからアクセスします
${exception.getMessage()}