Spring@JsonView如何使用请求参数或头
如何使用请求中的like参数:Spring@JsonView如何使用请求参数或头,spring,spring-mvc,spring-boot,jackson,Spring,Spring Mvc,Spring Boot,Jackson,如何使用请求中的like参数: @JsonView(header="range") 当响应值时,读取请求头范围以排除/包括某些字段JsonView提供“静态”视图映射。因此,对于您的动态行为,您可以这样做: // actual request handling is happened here private ResponseEntity<SomeObject> processRequest(); // request handling with view limit in re
@JsonView(header="range")
当响应值时,读取请求头范围
以排除/包括某些字段JsonView提供“静态”视图映射。因此,对于您的动态行为,您可以这样做:
// actual request handling is happened here
private ResponseEntity<SomeObject> processRequest();
// request handling with view limit in result
@JsonView(YourDefinedView.class)
@RequestMapping(value = "/request", headers={"range=include"})
public ResponseEntity<SomeObject> processWithView() {
return processRequest();
}
// request handling without view (no headers specified)
@RequestMapping(value = "/request")
public ResponseEntity<SomeObject> processWithoutView() {
return processRequest();
}
//实际的请求处理发生在这里
private ResponseEntity processRequest();
//结果中具有视图限制的请求处理
@JsonView(YourDefinedView.class)
@RequestMapping(value=“/request”,headers={”range=include“})
公共响应性流程WithView(){
返回processRequest();
}
//不带视图的请求处理(未指定头)
@请求映射(value=“/request”)
不带视图的公共响应性流程(){
返回processRequest();
}
这将把您的客户端映射到同一个请求url,但它是否提供视图取决于标题。然后,您可以创建一组方法,这些方法将根据标题信息使用不同的@JsonView
但这样做只会限制传输到客户机的数据,整个数据负载将发生在服务器上。例如,对于database和JPA,如果您不想从数据库中获取所有这些数据,您将以javax.persistence.NamedEntityGraphs
结束,这将改变应用程序的一般逻辑,并在一天结束时产生两种不同的方法
如果您想公开带有字段列表的自定义标题,要进行序列化-自定义DTO对象,或
Map
(丑陋)或自定义HandlerMethodReturnValueHandler
,请提供帮助 您可以实现自定义的HandlerMethodReturnValueHandler
这是方法上的@JsonView,我想根据动态生成的jsonyeees参数,从参数或标头读取它。但这不会为您添加动态添加/删除要序列化的字段的可能性。因此,为了继续进行此操作,您必须实现2个自定义请求方法:如“/list/with_range”和“/list”否,2个方法不好,@JsonView resolve在哪里?我可以将resolve更改为read from header吗?