2 回答

TA貢獻1772條經驗 獲得超8個贊
看起來像一個未完全初始化的對象。檢查您的 createQuestion 服務方法,并確保在將問題傳遞給控制器之前設置了問題的每個必填字段。僅該表單并沒有所有必要的字段。

TA貢獻1840條經驗 獲得超5個贊
我建議應用 MVVC 模式將您的業務對象與您的視圖對象分開。
您希望僅從模型屬性對象中的視圖接收字符串。
您的實體對象包含標簽列表和答案列表 => 它們的建模方式不同,同一類的使用很困難,并且存在許多潛在的錯誤。
在您的情況下,最好僅使用字符串創建一個單獨的視圖類并將它們轉換為您的實體對象。
例子 :
public class QuestionModelAttribute {
private String tags;
private String answers;
.....
}
并且您的方法將收到:
@PostMapping("/questions/new")
public String processQuestion(@Valid @ModelAttribute("question") QuestionModelAttribute questionModelAttribute, BindingResult result) {
Questions question = questionsService.convertQuestion(questionModelAttribute);
questionService.save(question);
..
}
您的視圖將在模型中收到一個 QuestionModelAttribute
<form:form action="/questions/new" method="post" modelAttribute="questionModelAttribute">
這種模式在視圖和模型之間提供了健康的解耦。
添加回答
舉報