1

クライアントから入力を取得するためにSpringフォームを使用しています(通常のhtml入力を使用する場合)。Spring フォーム入力を使用すると、エラーが発生しました: java.lang.IllegalStateException: BindingResult も、Bean 名 'enumLanguage' のプレーン ターゲット オブジェクトも要求属性として使用できません

これは私の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 に答える