我有以下控制器方法:
@RequestMapping(value="/map/update", method=RequestMethod.POST, produces = "application/json; charset=utf-8")
@ResponseBody
public ResponseEntityWrapper updateMapTheme(
HttpServletRequest request,
@RequestBody @Valid List<CompanyTag> categories,
HttpServletResponse response
) throws ResourceNotFoundException, AuthorizationException {
...
}
CompanyTag是这样定义的:
public class CompanyTag {
@StringUUIDValidation String key;
String value;
String color;
String icon;
Icon iconObj;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
...
}
问题是没有触发验证,没有验证CompanyTag列表,从不调用“ StringUUIDValidation”验证器。
如果我删除列表,仅尝试发送单个CompanyTag,即代替:
@RequestBody @Valid List<CompanyTag> categories,
利用:
@RequestBody @Valid CompanyTag category,
它可以按预期工作,因此显然Spring不喜欢验证事物列表(而是尝试使用数组,但同样没有效果)。
有人知道缺少什么吗?
我发现了另一种可行的方法。基本问题是你希望将列表作为服务的输入有效负载,但是javax.validation不会仅通过JavaBean来验证列表。诀窍是使用既可以用作List 又可以用作JavaBean 的自定义列表类:
@RequestBody @Valid List<CompanyTag> categories
改成:
@RequestBody @Valid ValidList<CompanyTag> categories
你的列表子类如下所示:
public class ValidList<E> implements List<E> {
@Valid
private List<E> list;
public ValidList() {
this.list = new ArrayList<E>();
}
public ValidList(List<E> list) {
this.list = list;
}
// Bean-like methods, used by javax.validation but ignored by JSON parsing
public List<E> getList() {
return list;
}
public void setList(List<E> list) {
this.list = list;
}
// List-like methods, used by JSON parsing but ignored by javax.validation
@Override
public int size() {
return list.size();
}
@Override
public boolean isEmpty() {
return list.isEmpty();
}
// Other list methods ...
}
使用: 它按照预期工作,所以Spring显然不喜欢验证事物列表(尝试使用数组,但也不起作用)。 有人知道缺了什么吗?
我正在使用Springs的Webclient进行HTTP GET调用。 我如何验证响应对象的属性,我收到作为我的HTTP调用的响应。 我试图通过阻止响应对象来验证平板地图中的出生日期,但这看起来不是最有效的方法。 以下是我代码的摘录。 任何帮助都非常感谢。
我有一个对象,其中包含对对象的引用,该对象有对对象的引用,为了使有效,必须具有对的有效且非空的引用。 问题是,不需要有效的、非空的才有效,所以我不能简单地将验证放在那里,我需要它在中。 这里有一个我正在谈论的类结构的简单伪版本: 我知道我可以用类级自定义验证注释来做到这一点,但问题是这些错误对象和相应的消息应用于类实例,而不是字段实例,我需要能够轻松地在正确的表单字段旁边显示错误消息。 有没有一个
问题内容: 我试图从成功登录后实现接口的类(Spring 3.2.2和Spring Security 3.2.0 M1)中调用受保护的方法。这是我以前的问题。 该应用程序在以下环境下运行。 Spring 3.2.2 Spring Security 3.2.0 JPA 2.0 JSF 2.1.9 MySQL 5.6.11 JDK-7u11 NetBeans 7.2.1 我已经将以下与Spring安全
我是Spring Boot和Spring Security的新手,继承了一个使用它们的webapp项目。我们将把webapp迁移到新的部署环境中。我们要改变的事情之一是认证机制,以便它能在新环境中运行。同时,我想使用一些现有的PostMan测试来测试RESTendpoint,绕过安全性。基本上,我想暂时禁用安全。 我有一个提供全局方法级安全性的类: 我有多个控制器类,例如,一个类 如果我尝试运行邮
问题内容: 我使用sf.json库在Java Web应用程序中映射传入请求的表单数据。 可以说传入请求是http:// localhost:8080 / app / addProfile ,其表单数据为: 服务器端 : 这种方法的主要问题是,如果对结构进行少量修改,则需要修改整个代码。 有没有可以配置验证所需规则的api? 问题答案: 您可以使用Json验证器:-https: //github.c