我在一个列表中有多个对象,希望为该列表中的每个对象创建一个表单(用户一次只能提交一个对象)。但只要我使用th:field而不是name和value,我就会得到一个异常。也许有人能帮我。它仅在使用th:each时发生;如果我将单个对象传递给它工作的窗体。。。我将问题降到了最低程度,因此更具可读性:)
例外情况:
java.lang.IllegalStateExcture:BindingResult和bean名称'o'的普通目标对象都不可用作请求属性
控制器类:
@Controller
public class TestController {
@GetMapping("/objectlisttest")
public ModelAndView getObjectListTest() {
ModelAndView mv = new ModelAndView("objectlisttest");
List<DataObject> objects = new ArrayList<>();
for (int i = 0; i < 5; i++) {
DataObject o = new DataObject();
o.setText("Dataobject");
objects.add(o);
}
mv.addObject("objects", objects);
return mv;
}
@PostMapping("/objectlisttest")
public ModelAndView editObjectListTest(DataObject o, BindingResult br) {
System.out.println(o);
return getObjectListTest();
}
public static class DataObject {
private String text;
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
}
查看:
<div th:each="o : ${objects}">
<form th:object="${o}" th:action="@{/objectlisttest}" method="POST">
<label>Text<input type="text" th:field="*{text}"></label>
<input type="submit">
</form>
</div>
提前谢谢
编辑:将视图更改为
<div th:each="o : ${objects}">
<form th:object="${o}" th:action="@{/objectlisttest}" method="POST">
<label>Text<input type="text" th:value="*{text}" th:name="text"></label>
<input type="submit">
</form>
</div>
作品。但是th:场地会好得多...
它期望模型中有“o”对象。如果你打电话
mv.addObject("o", someObject);
我认为错误消失了,但是模型中的“o”和作为循环变量的“o”之间会有冲突。
我想说,添加对模型具有相同引用的多个表单不是一个好主意(所有表单都有th:object=“${o}”
)。
你应该重新设计逻辑。可以将每个对象分别放置在模型中,也可以仅创建一个表单以保留列表。
问题内容: 是的,我阅读这是很常见的问题,但是阅读这些帖子并没有真正帮助我。 在 简短的故事 是,我想提交一份关于showAllComments.jsp形式 这是控制器: 结果是: java.lang.IllegalStateException:BeanResult’command’的BindingResult和普通目标对象都不能用作请求属性 但可能您需要从头开始了解 整个故事 :用户通过单击以下
问题内容: 是的,我阅读这是很常见的问题,但是阅读这些帖子并没有真正帮助我。 在 简短的故事 是,我想提交一份关于showAllComments.jsp形式 这是控制器: 结果是: java.lang.IllegalStateException:BeanResult’command’的BindingResult和普通目标对象都不能用作请求属性 但可能您需要从头开始了解 整个故事 :用户通过单击以下
问题内容: 我在网上查看了几乎所有与该问题有关的答案,但在我的代码中找不到该问题。 这是我的JSP页面。 当我删除 工作正常。我可以与控制器通信。因此问题与这条线有关。 这是我的web.xml 这是我的servlet-context.xml 还有我的applicationContext.xml 我可能在XML文件中做错了。我对于这个spring是新来的-hibernate员工,请耐心等待。谢谢..
当我只留下表显示可用的比萨饼与链接“删除”,一切显示正常,删除也正常工作。 我想表单和控制器@modelAttribute有问题,但我找不到确切的问题,我在controller中添加了与表单相同的属性--“mypiza”,这应该可以工作(至少从我在Google上找到的东西来看)。 有人能告诉我们是什么阻碍了这个应用程序的工作,以及如何解决这个问题吗?如果需要其他配置文件,我可以提供它们。
问题内容: 我正在尝试编写一个Spring MVC Web应用程序,用户可以在其中将电影名称添加到内存集合中。像这样配置 和 套餐中只有一个@Controller班级com.example 该应用程序配置了上下文路径/Example。当我发送GET请求到 http://localhost:8080/Example/movies 请求失败,Spring MVC响应500状态码,并报告以下异常和堆栈跟
问题内容: 我有这个控制器代码,它抛出上述错误。到昨天为止,一切正常,我不知道同事对该代码做了什么,今天我看到了错误: Bean名称“ sideForm”的BindingResult或普通目标对象都不能用作请求属性 你能建议我在哪里寻找这种错误。我在POST或GET方法声明中犯了任何错误还是返回了错误的东西? 非常感谢你的帮助:) 此页面从如下所示的表单获取值: 问题答案: 确保你的Spring表