我有一个Spring Boot服务,它为POST请求正文使用自定义POJO类。当客户端将其中一个字段传递为null时,我希望该值设置为0。
@Data
public class CardAnswer {
private Integer answerId = 0; //should always be 0 and never set to null
private String value;
}
由以下控制器使用:
@RequestMapping(value = "/{category}", method = RequestMethod.POST)
public SalesPulseMResponse updateSecurity(@PathVariable(value = SalesedgeConstants.CATEGORY)
@RequestBody CardAnswer requestBody) {
return fooService.updateFieldsByCategory(category, requestBody);
}
Spring boot将为我处理从JSON到Card答案
的数据绑定,但是每当应答ID
作为null传递时,我希望它保留0。有没有正确的方法来做到这一点,或者我必须自己解析类并设置值?目前,如果客户端在其请求JSON中没有传递此字段,它将保留默认值,但是,我希望即使传入的null值也保留默认值。
您可以使用@JsonIgnore
@Data
public class CardAnswer {
@JsonIgnore
private Integer answerId = 0;
private String value;
}
int
s有这个属性,所以:
@Data
public class CardAnswer {
private int answerId;
private String value;
}
例子:
@Data
public class CounterRequest {
private final int int1;
private final int int2;
}
@Data
public class CounterResult {
private final int value;
}
@RestController
@RequestMapping(
produces = MediaType.APPLICATION_JSON_UTF8_VALUE,
consumes = MediaType.APPLICATION_JSON_VALUE)
public class CounterRestController {
public static final String ADD_URL = "/counter/add";
@RequestMapping(value = ADD_URL,
method = RequestMethod.POST)
public CounterResult add(@RequestBody @Valid
CounterRequest counterRequest) {
return new CounterResult(counterRequest.getInt1() + counterRequest.getInt2());
}
}
运行时间:
$ curl -X POST -H "Content-Type: application/json" --data "{\"int1\":null,\"int2\":2}" localhost:8080/counter/add
{"value":2}
$ curl -X POST -H "Content-Type: application/json" --data "{\"int1\":1,\"int2\":2}" localhost:8080/counter/add
{"value":3}
我的jsp表单中有一些数字字段(但不是强制的),例如kkqty、sogoqty和sesaqty。因此,当用户没有在这些字段中输入任何内容时,我在控制器端接收到null,因此在保存这些表单数据时会出现Null属性异常 我的POJO(OutletInfo.java) 我的控制器 在控制器中,当我尝试打印所有数值字段时,我在这里收到空值,因此无法保存。 我需要将null转换为默认值0.0,我知道我需要检
问题内容: 我有一个模板绑定,使用Angular的日期过滤器显示名为“ date”的模型属性,该属性是一个日期。 到目前为止,一切都很好。但是,目前,如果日期字段中没有值,则绑定不显示任何内容。但是,如果没有日期,我希望显示字符串“ Various”。 我可以使用二进制运算符获取基本逻辑: 但是我无法使其与日期过滤器一起使用: 如何在日期过滤器旁边使用二元运算符? 问题答案: 原来我要做的就是将表
如何将MVVM值绑定到dropdownlist?下面的输入元素运行良好
我有以下剑道下拉列表: 然后,我的javascript可观察绑定: 当试图添加事件:{Change: eventLabelChange}到我的html dropDownlist元素中的数据绑定时,我得到处理程序没有定义错误,当它显然是(有趣的是,我有另一个dropDownlist与此页面上的相同类型的绑定完美地工作与变化事件罚款...)。 而且我无法获得默认值。我曾尝试在绑定后直接将dropdow
注:内容翻译自官网文档 Language Guide (proto3) 中的 Default Values 一节 当消息被解析时, 如果被编码的消息没有包含特定的简单元素, 被解析的对象对应的字段被设置为默认值. 默认值是和类型有关的: 对于strings, 默认值是空字符串(注, 是"", 而不是null) 对于bytes, 默认值是空字节(注, 应该是byte[0], 注意这里也不是null)
问题内容: 我想有一个可选参数,如果仅存在未指定值的标志,则默认为一个值,但是存储用户指定的值,而不是如果用户指定一个值,则存储默认值。是否已经有可用于此的措施? 一个例子: 我可以创建一个动作,但想查看是否存在执行此操作的方法。 问题答案: 表示0或1参数 当参数为0时设置默认值 将参数转换为int 如果即使未指定,也要设置为1 ,则包括。也就是说, 然后