BindingResult和bean名称'parametre'的普通目标对象都不是

时间:2016-03-11 11:11:41

标签: java spring spring-mvc exception

我正在使用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'的普通目标对象可用作请求属性。我尝试了多种解决方案,但我没有工作。请任何人都可以帮助解决这个问题。

1 个答案:

答案 0 :(得分:0)

这里有很多东西搞砸了,我建议你阅读一些modelAttribute例子,有几十个,甚至在官方的春季文档上。看起来您将模型对象与简单的请求参数混淆,对于第二个您甚至不需要BindingResult。此外,表单操作的语法也不正确。

action="${addTreat}"更改为action="/addTreat"