例外:org.springframework.web.bind.MissingServletRequestParameterException:必需的字符串参数'params'不存在

时间:2016-05-09 04:03:11

标签: java jquery spring datatables

当我点击编辑按钮时,dataTable中的值应以表格形式显示。但不知怎的,它不起作用。以下是我的参考代码。

调用DataTable:

$("#tranTable").on("click", "#edit", function(){
    var row = $(this).closest("tr");

    $("#Own-Account").removeClass("hidden");
    $("fieldset#addToListMethod").addClass("hidden");
    $("fieldset#Own-Account #templateTrxId").val( row.find("[name$=templateTrxId]").val() )
    $("fieldset#Own-Account #templateId")   .val( row.find("[name$=templateId]").val() )
    $("fieldset#newFT #fromAccNo")          .val( row.find("[name$=fromAccNo]").val() ), 
    $("fieldset#newFT #methodOfTransfer")   .val( row.find("[name$=methodOfTransfer]").val() ), 
    $("fieldset#Own-Account #toAccNo")      .val( row.find("[name$=toAccNo]").val() ), 
    $("fieldset#Own-Account #paymentRef")   .val( row.find("[name$=paymentRef]").val() ),
    $("fieldset#Own-Account #amount")       .val( row.find("[name$=amount]").val() ),

    //hidden
    $("fieldset#Own-Account #otherPaymentDetail").val( row.find("[name$=otherPaymentDetail]").val() ),
    $("fieldset#Own-Account #email1").val( row.find("[name$=email1]").val() ),          
    $("fieldset#Own-Account #email2").val( row.find("[name$=email2]").val() ),
    $("fieldset#Own-Account #sms1").val( row.find("[name$=sms1]").val() ),
    $("fieldset#Own-Account #sms2").val( row.find("[name$=sms2]").val() ),
    $("fieldset#Own-Account #purpose").val( row.find("[name$=purpose]").val() )
    $("fieldset#Own-Account #isEdit").val(1);
    $("fieldset#Own-Account #dataTableRowId").val(row.data("row-id"));


});

2 个答案:

答案 0 :(得分:9)

从例外情况来看,可能会发现您的问题,因为@RequestMapping没有找到从上一页发送的参数。

在这种情况下可能是这样的:

@RequestMapping(value = "/check")
public String getID(@RequestParam(value = "params") String params){
//your logic code here
}

从这里开始,@RequestMapping找不到"params"时会出现例外:

@RequestParam(value = "params") String params

这是因为默认情况下@RequestParam会尝试获取值,并在找不到值时返回异常。

所以你有两种方法可以解决这个问题,

1)您可以使用/check变量或

提供网址params

2)您可以将@RequestParam要求更改为false,如下所示:

@RequestParam(value = "params", required = false) String params

请注意,这是反映您的方案和问题的示例。 Gud luk。

答案 1 :(得分:0)

我有同样的错误信息。我的错误是我在Javascript方面写的:

MyService.getStatus(vm.id);

代替:

MyService.getStatus({id : vm.id});

因此该参数未在Java端按预期方式命名:

@GetMapping("/myservice/getStatus")
@Timed
public ResponseEntity<String> getStatus(@RequestParam("id") Long id) {