我正在使用spring MVC,所以基本上即时创建一个论坛,它将把文件和radioButton作为输入: form_li.jsp:
<f:form id="form1"
name="form1"
modelAttribute="parametre"
action="${addTreat}"
method="POST"
enctype="multipart/form-data">
<table>
<tr>
<td>xslx File : </td>
<td>
<f:input id="filepd" path="fileCom" name="filepd" type="file" />
</td>
</tr>
<tr>
<td>Choice </td>
<td>
<div>
<f:input id="az" name="az" path="choice" type="radio" value="false" />
<label for="az">1</label>
<f:input id="aj" name="aj" path="choice" type="radio" value="true"/>
<label for="aj">2</label>
</div>
</td>
</tr>
<tr>
<div align="center">
<f:input type="submit" value="Validate" path="" />
</div>
</tr>
</table>
</f:form>
for myController:
@RequestMapping(value="/addTreat", method= RequestMethod.POST)
public String addTr(HttpServletRequest req,
BindingResult result,
ModelMap model,
@RequestParam("parametre") Parametre parametre) {
model.addAttribute("parametre", new Parametre());
return form_li;
}
用于类Parametre.java:
public class Parametre {
private String choice;
private MultipartFile fileCom;
//getters and setters
//default constructor
}
我的问题是在运行应用程序并转到/ addTreat网址时。我得到着名的Neither BindingResult和bean名称'parametre'的普通目标对象可用作请求属性。我尝试了多种解决方案,但我没有工作。请任何人都可以帮助解决这个问题。
答案 0 :(得分:0)
这里有很多东西搞砸了,我建议你阅读一些modelAttribute
例子,有几十个,甚至在官方的春季文档上。看起来您将模型对象与简单的请求参数混淆,对于第二个您甚至不需要BindingResult
。此外,表单操作的语法也不正确。
action="${addTreat}"
更改为action="/addTreat"