I have a simple controller with method test:
 @RequestMapping(produces = "application/json")
    @ResponseBody
    public HttpEntity<Void> test(Test test) {
        return new ResponseEntity<>(HttpStatus.OK);
    }
Test class looks like this:
    public class Test {
    private String name;
    private Date date;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Date getDate() {
        return date;
    }
    @DateTimeFormat(iso= DateTimeFormat.ISO.DATE)
    public void setDate(Date date) {
        this.date = date;
    }
}
And I need default values for fields of Test object. If I had a primitive param, I would be able to use @RequestParam(required = false, defaultValue = "someValue"). But with non-primitive param this approach doesn't seem to work. I see a couple of variants how to deal with it:
- Assign values in a constructor. Not very good, because may be I will need different defaults for different methods.
- Write custom DataBinder. Better, but the problem with different defaults still exists.
- Write custom DataBinder and custom annotation with defaults.
Am I missing something and there is a built in feature which can solve my problem?
 
    