当前位置: 首页 > 知识库问答 >
问题:

将 bean 列表传递到具有@RequestParam的控制器

公孙琛
2023-03-14

我需要将bean列表传递到我的控制器中。

@RestController
@RequestMapping("/api")
public class MyController {
    @RequestMapping(value = "/my/{id}/method", method = RequestMethod.POST)
    public Result editRequest(
            @RequestParam("first") String first,
            @RequestParam("second") String second,
            @RequestParam("third") String third,
            @RequestParam("items") List<MyBean> items,
            @PathVariable("id") Long id

    ) {
        ...
    }
}

和MyBean:

public class MyBean {
    private Integer fst;
    private String snd;
    private Long thd;
    private Integer fo;

    public MyBean() {
    }

    ... get/set
}

我需要从AngularJS做到这一点,但现在我正在用curl在bash中测试它。我需要什么命令?

curl --data "first=-11374862&second=-1000&third=61&items[0][fst]=124231664&items[0][snd]=12&items[0][thd]=123&items[0][fo]=null" http://localhost:8080/api/my/100000/method --header "Content-Type:application/x-www-form-urlencoded"

会产生如下错误:

Required List parameter 'items' is not present

共有2个答案

孟开宇
2023-03-14

你可以试试下面的卷发。您当前的curl命令将< code>items作为一个二维数组,而不是一个对象数组。

curl --data "first=-11374862&second=-1000&third=61&items[0].fst=124231664&items[0].snd=12&items[0].thd=123&items[0].fo=null" http://localhost:8080/api/my/100000/method --header "Content-Type:application/x-www-form-urlencoded"

此外,还可以考虑使用@RequestBody将请求正文映射到对象。检查这篇文章。

秦毅
2023-03-14

您无法传递对象列表,我可以通过使用< code > @ request param(" ids[]")Integer[]ids 来考虑原语和字符串,或者尝试使用@RequestBody来传递列表。

 类似资料:
  • 我正在尝试获取一个将列表从 JSP 传递到控制器的示例以工作: http://viral Patel . net/blogs/spring-MVC-multi-row-submit-Java-list/ 这个例子的问题是我没有让JSP/WEB content/we b-INF/JSP/add _ contact . JSP工作。他有一句台词: 我得到varstatus变量的错误。他从哪里得到这个变

  • 我正在尝试在更改选项后将我的Thymeleaf超文本标记语言中已经提供的List传回控制器。我尝试过隐藏输入,但不幸的是,它还不起作用。 我的表单如下所示(控制器已经提供了“电影”列表) 我的控制器看起来像这样: 期待有人能帮助我!

  • 问题内容: 我有一个Web API控制器,我想向其发布两个参数。一个是平面整数ID,另一个是IDictionary或类似的等效符号。 无论我尝试在数据参数(,),字典不通过走到API控制器。它为null或具有一个虚假条目({0,0})。 我还尝试过在Uri中发送字典-不行。 如何将字典或键值对发送到api控制器? 问题答案: 您不需要数组-您需要一个简单的JS对象(映射到字典)。此代码应工作:

  • 所以基本上我有我的rootFolderId在我的application.properties 我需要把它放到控制器里 并在@RequestParam中使用它,例如: 但是我遇到了“属性值必须是常数”的问题。有什么方法可以让它工作吗?

  • 问题内容: 我的图像是我试图将数据(变量)从一个阶段传递到另一阶段,但是当我尝试在第二阶段访问它们时,它们为空。mainWindow的代码。前往window1 // window1类: 如果我想访问以前收到的标题,则为null 初始化显示应该为“ Window1”时显示为null} 问题答案: 在加载FXML文件的过程中,将调用该方法-换句话说,在调用时将调用该方法。 显然,这是 在 调用 之前

  • 因此,在我的Javascript中,我使用的是表单序列化,输出是正确的 (issubmit=1) 当我试图将其传递给我的控制器时,我什么也得不到,。我做错了什么? Jquery: 控制器: