gpt4 book ai didi

java - spring bean 验证 - 禁用某些字段的特定验证

转载 作者:行者123 更新时间:2023-12-02 05:10:25 25 4
gpt4 key购买 nike

我的 spring mvc 应用程序中有一个 View 模型,我需要启用或禁用某些字段的特定验证。例如,假设我有一个 2 个 View 表单,将数据发送到不同的 Controller 方法,但两种方法都使用相同的 View 模型类,如下所示:

@RequestMapping(value = "/method1", method = RequestMethod.POST)
@ResponseBody
public ViewModel method1(@RequestBody @Valid ViewModel viewModel){
...
}

@RequestMapping(value = "/method2", method = RequestMethod.POST)
@ResponseBody
public ViewModel method2(@RequestBody @Valid ViewModel viewModel){
...
}

这是我的 View 模型的一部分:

private Integer test;

我需要在 test 字段上使用 @NotNull 注释,但仅在 Controller 的 method2 中使用。事实上,我不需要在 method1 中进行此验证。有什么办法可以做到这一点吗?

最佳答案

我认为你的方法应该是编写一个像这样的父类(super class)

class ViewModel {
@NotNull
private Integer test;

public Integer getTest() {
}
}

class ViewModelSuper extends ViewModel {
private Integer test;

@Override
public Integer getTest() {
}
}


the you'll have

@RequestMapping(value = "/method1", method = RequestMethod.POST)
@ResponseBody
public ViewModel method1(@RequestBody @Valid ViewModelSuper viewModel){
...
}

@RequestMapping(value = "/method2", method = RequestMethod.POST)
@ResponseBody
public ViewModel method2(@RequestBody @Valid ViewModel viewModel){
...
}

由于您只需要对 method2 进行验证,因此父类(super class)用于 method1

关于java - spring bean 验证 - 禁用某些字段的特定验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47154896/

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