我正在使用Spring Boot和百里香叶组合为我的项目。
下面是Get控制器的代码片段-
@GetMapping("/split")
public String VerticalSplit(Model model) {
MessageContent messageContent0 = new MessageContent();
MessageContent messageContent1 = new MessageContent();
List<MessageContent> messageContentList = new ArrayList<MessageContent>();
messageContentList.add(0, messageContent0);
messageContentList.add(1, messageContent1);
DisplayMessage displayMessage = new DisplayMessage();
model.addAttribute("displayList", displayService.getAllDisplays());
model.addAttribute("groupList", groupService.getAllGroups());
model.addAttribute("messageContentList", messageContentList);
model.addAttribute("displayMessage", displayMessage);
return "combo_vertical_split";
}
及相应的html代码如下-
<html>
<head></head>
<body>
<div class="col-12">
<label class="form-label"> Name of Message </label>
<input type="text" name="name" class="form-control" placeholder="Enter Name Of Message" required="required" th:value="${displayMessage.name}" />
</div>
<hr />
<div th:each="messageContent, iStat : ${messageContentList}">
<h6 align="center" th:text="'Section '+${iStat.count}"></h6>
<div class="form-group">
<label class="form-label"> Select the content type </label>
<select name="messageContentType" id="messageContent" class="form-control" th:onchange="ShowHideTextMediaDiv();" th:field="${messageContent.type}"> <option class="form-select" th:value="Text">Text</option> <option class="form-select" th:value="Image">Image</option> <option class="form-select" th:value="Video">Video</option> </select>
<br />
</div>
</div>
</body>
</html>
当我试图加载该页面时,我得到如下错误-
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'messageContent' available as request attribute
我不明白的一点是,即使我已经在控制器中声明了messageContent,为什么我会得到上面提到的错误。
我尝试了多种语法
th:field="${messageContent.type}"
详情如下─
th:field="*{messageContent.type}" //its silly as i have not declared the form object but still i tried
th:field="${messageContentList[__${iStat.index}__].type}"
和很少其他组合以及,但没有任何工作,几乎每次我得到同样的错误。
1条答案
按热度按时间ds97pgxw1#
出现
Neither Bindingnor plain target...
错误是因为您在HTML中使用了th:field
,但尚未定义绑定到它的对象。您可以在
form
元素中添加input元素,并添加绑定到模型的messageContent
对象的th:object
属性。您可以执行类似以下操作: