java 异常:org.springframework.web.bind.MissingServletRequestParameterException:必填字符串参数'params'不存在

mefy6pfw  于 2023-05-21  发布在  Java
关注(0)|答案(4)|浏览(213)

当我单击编辑按钮时,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"));

});
cmssoen2

cmssoen21#

从这个异常来看,您的问题很可能是因为@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.您可以为URL /check提供一个params变量,或者,
1.您可以将@RequestParam要求更改为false,如下所示:
@RequestParam(value =“params”,required = false)String参数
请注意,这是一个反映您的场景和问题的示例。古德卢克。

e0bqpujr

e0bqpujr2#

通过添加required = false来修复它,如下所示:
添加前:

public String saveOrUpdate(
    @RequestParam("studentId") String studentId,
    @RequestParam("name") String name) {

添加后:

public String saveOrUpdate(
        @RequestParam(value = "studentId", required = false) String studentId,
        @RequestParam("name") String name) {
0x6upsns

0x6upsns3#

我收到了同样的错误信息。我的错误是我在JavaScript方面写了:

MyService.getStatus(vm.id);

而不是:

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

所以参数的命名在Java端并不符合预期:

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

2fjabf4q4#

尝试将@RequestParam(value = "params") String params替换为@PathVariable String id

相关问题