考虑以下(简化)表格
<form id="simple-form" action="/requests" method="post" enctype="multipart/form-data" >
<input type="hidden" name="providerId" value="{{providerId}}" />
<button type="submit">Submit</button>
</form>
如果提交此表单时不提供providerId值,则如果方法参数为Optional,则将其正确绑定
@Post(uri="/requests", consumes=MediaType.MULTIPART_FORM_DATA)
@Transactional
public HttpResponse doSimple(@Body Optional<Long> providerId) {
...
}
但是如果我使用@Nullable批注,则会失败(出现此错误消息:“由于以下原因,无法将参数[providerId]转换为值[]:由于输入字符串:\“ \”“)
@Post(uri="/requests", consumes=MediaType.MULTIPART_FORM_DATA)
@Transactional
public HttpResponse doSimple(@Body @Nullable Long providerId) {
...
}
他们不是应该做同样的事吗?
提前感谢您的建议。