gpt4 book ai didi

java - 如何确保强制参数传递到 Spring MVC Controller 方法中?

转载 作者:行者123 更新时间:2023-12-01 18:37:57 25 4
gpt4 key购买 nike

给定一个 Spring-MVC Controller 方法:

@RequestMapping(value = "/method")
public void method(@RequestParam int param1,
@RequestParam int param2) { /*...*/ }

如果请求URL中缺少参数,则会报错,例如:

JBWEB000068: message Required int parameter 'param1' is not present

我需要将参数移动到单个模型类中,但保持完全相同的 GET 请求 URL。因此将method的参数修改为MyModel model,其中包含param1param2

如果省略@RequestParam,则此方法有效,但问题是如果缺少参数,则不会报告错误。另一方面,如果包含 @RequestParam,则 GET 请求中需要一个名为“model”的参数。有没有办法使模型参数成为强制性的,同时保持相同的请求 URL?

最佳答案

使用 JSR-303 注释来验证对象(在这种情况下不要使用基元,而是使用对象表示)。

public class MyObject {
@NotNull
private Integer param1;

@NotNull
private Integer param2;

// Getters / Setters

}

Controller 方法。

@RequestMapping(value = "/method")
public void method(@Valid MyObject obj) { /*...*/ }

如果您的类路径上没有 JSR-303 提供程序(例如 hibernate-validator),请创建一个 Validator 并使用它来验证您的对象。

链接。

  1. Spring MVC reference guide
  2. Spring 验证 reference guide

关于java - 如何确保强制参数传递到 Spring MVC Controller 方法中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21040198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com