spring - Spring MVC:Bean 名称“标记”的 BindingResult 和普通目标对象都不能用作请求属性。尝试了所有解决方案
问题描述
我尝试了所有解决方案,但我不断收到此错误。此外,如果我不在 jsp 文件中使用 form:form 并使用简单的 HTML,我会得到所需的输出。
控制器类
@Controller
public class controller_class {
/*
* @RequestMapping(path = "/index", method = RequestMethod.GET) public
* ModelAndView mar() { return new ModelAndView("index","command",new marks());
* }
*/
@RequestMapping("/index")
public ModelAndView showComments() {
return new ModelAndView("marks","command",new marks());
}
@RequestMapping(value = "/addMarks", method = RequestMethod.POST)
public ModelAndView stud(@ModelAttribute("marks") marks m) {
ModelAndView mv = new ModelAndView("result");
int k = m.calculate();
mv.addObject("tot_marks", k);
return mv;
}
}
索引.jsp
<form:form method = "POST" modelAttribute="marks" action = "/springmvc_qa3/addMarks">
<table>
<tr>
<td><form:label path = "sci_marks">Name</form:label></td>
<td><form:input path = "sci_marks" /></td>
</tr>
<tr>
<td><form:label path = "maths_marks">Age</form:label></td>
<td><form:input path = "maths_marks" /></td>
</tr>
<tr>
<td><form:label path = "eng_marks">id</form:label></td>
<td><form:input path = "eng_marks" /></td>
</tr>
<tr>
<td colspan = "2">
<input type = "submit" value = "Submit"/>
</td>
</tr>
</table>
</form:form>
</body>
如果我改用它,则正确输出
<form method="POST" action="/springmvc_qa3/addMarks" >
<table>
<tr>
<td><label >Science Marks</label></td>
<td><input type="text" name="sci_marks" /></td>
</tr>
<tr>
<td><label >Mathematics Marks</label></td>
<td><input type="text" name="maths_marks" /></td>
</tr>
<tr>
<td><label >English Marks</label></td>
<td><input type="text" name="eng_marks" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Submit" />
</td>
</tr>
</table>
</form>
使用第一种方法无法获得正确输出的原因是什么?
解决方案
将以下内容添加到您的控制器类中:
@ModelAttribute("marks")
public Marks nameOfMethodDoesntMatter(){
return new Marks();
}
确保您的 Marks 类具有 getter、setter 和默认构造函数。
考虑调用您的类 MarksDTO 或类似的东西以更好地传达其含义(DTO = 数据传输对象)。
推荐阅读
- html - 试图制作一个命令页面来列出我的不和谐机器人上的所有命令,但不知道如何
- javascript - “(组件)未定义”,找不到错误?
- python - 扩展 Marshmallow 架构但覆盖字段必需属性
- python - 在 C++ 脚本中嵌入 Python,PyRun_SimpleFile 无法按预期工作
- kotlin - 将两个状态流组合成新的状态流
- firebase - Flutter/Firestore - 实时收听集合和子集合
- pandas - 熊猫将 cumprod 应用于特定索引
- android - 找不到参数的方法 content() - Android Studio
- c++ - 符号已定义
- java - 如何防止迭代器列表的突变?