Вот что я сделал. На мой взгляд, у меня есть следующий код в одном из моих методов JavaScript. Я использую jQuery getJSON
вместо ajax
, потому что он, кажется, подходит лучше (чище).
$.getJSON(
"/truckingmanagement/load/getTotal",
{cargoSource:cargoSource, cargo:cargo, haulRate:haulRate, tonnage:tonnage, mileage:mileage, discount:discount, taxExempt:taxExempt},
function(result) {
if(result.message != null){
alert(result.message);
$("#discount").val("");
$("#totalCell").html(result.total);
}
else{
$("#totalCell").html(result.total);
}
});
В моем контроллере я все еще использовал метод render
внутри своего замыкания, но изменил его для JSON, убедившись, что import grails.converters.*
.
render(contentType:"text/json") {
total = g.textField(name: 'total', value: totalBill, readonly: 'readonly')
message = errorMessage
}
Значение totalBill
было вычислено до вызова render
, а errorMessage
- это просто строка, содержащая сообщение, основанное на том, что было ошибкой (отрицательное значение скидки или значение скидки больше, чем сумма) или отсутствие сообщения совсем. Таким образом, если сообщение null
, сообщение не будет отображаться.