Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring@JsonView如何使用请求参数或头_Spring_Spring Mvc_Spring Boot_Jackson - Fatal编程技术网

Spring@JsonView如何使用请求参数或头

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

如何使用请求中的like参数:

@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吗?