1

我正在使用 Spring 表单从客户端获取输入(如果我使用普通的 html 输入)。如果我使用 Spring 表单输入,则会出现错误:java.lang.IllegalStateException: Bean name 'enumLanguage' 的 BindingResult 和普通目标对象都不能用作请求属性

这是我的 JSP:

 <form:form commandname="enumLanguage" action="${pageContext.request.contextPath}/enumLanguage/create.action" method="post" modelAttribute="enumLanguage" >                 
                <fieldset class="langStep">

                    <legend>Language Details</legend>

                    <table class="langpadding">
                        <tr>
                            <td><label>Name:</label></td>
                            <td><form:input path="name" cssClass="textbox2"></form:input></td>

                            <td><label class="llangpadding">Short Name:</label></td>
                            <td><form:input path="shortName" cssClass="textbox2"></form:input></td>
                        </tr>
                    </table> 
<a href="Javascript:enumLanguage.submit()" class="button left" title="Add" id="add">Save<span class="icon icon3"></span></a>
</form:form>

这是我的控制器:

@RequestMapping( value="/enumLanguage/create.action", method=RequestMethod.POST)
public ModelAndView create(@ModelAttribute EnumLanguage enumLanguage) throws Exception {    

    ModelAndView mvc = null;
    try{
        List<EnumLanguage> enumLanguages =  new ArrayList<EnumLanguage>();
        enumLanguages.add(enumLanguage);
        List<EnumLanguage> enumLanguagesList = enumLanguageService.create(enumLanguages);

        mvc =   new ModelAndView("setup/EnumLanguageList");

    } catch (Exception e) {

    }
    return mvc;
}
4

2 回答 2

0

确保您在视图中提供了一个模型属性,其键enumLanguage是表单命令名的值。

因此,返回包含您发布的表单的视图的控制器方法应该如下所示。

@RequestMapping(value = "/language-details.do", method = RequestMethod.GET)
public ModelAndView initLanguageDetailsView() {

   ModelMap model = new ModelMap();

   EnumLanguage enumLang = new EnumLanguage();
   //setters blah blah
   //...

   //make it available to the view
   model.addAttribute("enumLanguage", enumLang);

   return new ModelAndView("language-details", model);
}
于 2013-07-09T05:15:50.937 回答
0

Make sure you have your @ModelAttribute set to the model when rendering the view

于 2013-07-08T13:41:46.080 回答