Spring mvc,由于null值,不在表单中的字段将被清除

时间:2013-04-16 08:14:04

标签: mongodb spring-mvc data-binding modelattribute

我有一个简单的POJO:

@Document(collection = "questions")
public class Question {

    private String title;

    private Date createdAt;
    //..... all the getter and setters
}

我没有在编辑表单上添加createdAt,因为创建后不应该更改它。但是由于绑定,更新控制器方法将在createdAt中获得null值。

@RequestMapping(method = RequestMethod.PUT, produces = "text/html")
public String update(@Valid Question question, BindingResult bindingResult,
        Model uiModel, HttpServletRequest httpServletRequest) {
    if (bindingResult.hasErrors()) {
        populateEditForm(uiModel, question);
        return "questions/update";
    }
    uiModel.asMap().clear();
    questionRepository.save(question);
    return "redirect:/questions/"
            + encodeUrlPathSegment(question.getId().toString(),
                    httpServletRequest);
}

因此,在更新问题后,createdAt字段将被清除。知道怎么解决吗?我不想在没有createdAt字段的情况下创建另一个类并进行更新。

1 个答案:

答案 0 :(得分:0)

您可以在表单中添加隐藏字段,预先填充createdAt。