1

我正在尝试使用 Spring 和 Hibernate 一次将多条记录保存/更新到我的数据库(sql-developer)。我通过控制器通过 ajax 调用将数据传递到服务层、Dao、循环,该循环遍历我的 Hvo 对象列表并确定它是否已经在数据库中,然后保存新记录或更新当前记录。一旦它通过了这个循环(看起来很成功),我得到一个 403 错误并且页面上没有警报。我在 Eclipse 中的堆栈跟踪中没有错误。

这是我的javascript:

function saveLimXrefHvo(){

var list = []; 

//declare variables for the data pieces
$('#limAssigned li').each(function (index, li) {
var cdeBusUnit = $('select[name="cde_bus_unit"]').val();
var cdeRatingPlan = $('select[name="cde_rating_plan"]').val();
var cdeLimit = $(this).attr('id');
var txtLimitRptOcc = $('#textOcc').val();
var txtLimitRptCm = $('#textCM').val();
var uidMod = $('#saveRTnumberLimXref').val();
var numSortOrder = (index + 1);

//put the variables in the JSON object
var JSONObject = {
        "cdeBusUnit" : cdeBusUnit,
        "cdeRatingPlan" : cdeRatingPlan,
        "cdeLimit" : cdeLimit,
        "txtLimitRptOcc" : txtLimitRptOcc,
        "txtLimitRptCm" : txtLimitRptCm,
        "uidMod" : uidMod,
        "numSortOrder" : numSortOrder
};

list.push(JSONObject);

});
var dat = JSON.stringify(list);

$.ajax({
    type : 'PUT',
    url : 'saveLimXrefHvo.do',
    contentType : 'application/json',
    data : dat,
    success : function(){
        alert("This record has been successfully saved.");
    }
});//end ajax

}

这是我的控制器方法:

    @RequestMapping(value = "/saveLimXrefHvo.do", method = RequestMethod.PUT,
consumes="application/json")

public void saveLimXrefHvo(@JsonParam(innerType=LimitXrefHvo.class) 
List<LimitXrefHvo> limitXrefHvoList) throws JsonParseException, 
JsonMappingException, IOException {

limitService.saveLimXrefHvo(limitXrefHvoList);
}

我一直在试图弄清楚为什么我现在整个早上都收到 403 错误。我尝试通过在循环的“else”部分中单独删除和单独保存来更改 Dao 方法,但这不起作用。有人建议在控制器方法中添加“消耗”。那也没有用。我愿意接受建议、想法和问题。提前致谢!

4

1 回答 1

1

您的 Spring 控制器是否知道如何处理无响应(即void)?

尝试返回一个表明操作成功的 JSON 对象。

例子:

{
  "success": true,
  "message": "Successfully saved... blah blah"
}

实现可能类似于:

*看不见(我添加了 products="application/json")

@RequestMapping(value = "/saveLimXrefHvo.do", method = RequestMethod.PUT, consumes="application/json", produces="application/json")
public ResponseMap saveLimXrefHvo(@JsonParam(innerType=LimitXrefHvo.class)  List<LimitXrefHvo> limitXrefHvoList) throws JsonParseException, JsonMappingException,  IOException {

    limitService.saveLimXrefHvo(limitXrefHvoList);

    return new ResponseMap("Success");
}
于 2013-05-23T17:59:14.843 回答