2016-06-13 68 views
0
//Controller class 
    @Controller 
    public class ListController 
    { 
     @Autowired 
     LanguageDao ldao; 


     @RequestMapping(value="doget" , method=RequestMethod.GET) 
     public ModelAndView doGet() 
     { 
      List<Language> lang = ldao.getActiveLanguage(); 
      LanguageAndBeanTogether lab = new LanguageAndBeanTogether(); 
      for(Language l: lang) 
      { 
       LanguageAndDescription lad = new LanguageAndDescription(l.getLanguageCode(), l.getLanguageFlag(), ""); 
       lab.getLlist().add(lad); 
      } 
      System.out.println("total item in list is "+lab.getLlist().size()); 
      ModelAndView mav = new ModelAndView("viewForm","command",lab); 
      return mav; 
     } 

     @RequestMapping(value="dopost",method=RequestMethod.POST) 
     public ModelAndView doPost(LanguageAndBeanTogether landb) 
     { 
      System.out.println(landb); 
      ModelAndView mav = new ModelAndView("viewForm","command",landb); 
      return mav; 

     } 
    } 

    //JSP file 
     <form:form action="dopost.do"> 
     product name 
     <form:input path="base.productName"/><br> 

      <c:forEach var="language" items="${command.llist}" varStatus="vs" > 
      <form:hidden path="llist[${vs.index}].languageCode"/> 
       <img src="admin/language/original/${language.keyVal}" /> 

       <form:input path="llist[${vs.index}].valueVal" /> 

      </c:forEach> 
      <input type='submit'/> 
     </form:form> 

    //class containing list 
    public class LanguageAndBeanTogether 
    { 
     ProductCategory base; 
     List<LanguageAndDescription> llist; 
    //setter and getter 
    } 


    public class LanguageAndDescription 
    { 
     String languageCode,keyVal,valueVal; 
    //setter and getter 
    } 

public class Language 
{ 
    Integer id; 
    String languageName,languageCode,languageFlag,isDefault,status; 
//setters and getters 
} 

在上面的問題中,我總是得到窗體支持對象的空值,即LanguageAndBeanTogether。請給我一個解決方案。我有另外一個問題,有什麼辦法在春天將兩個對象綁定爲一個表單支持對象。 任何幫助非常感謝。由於彈出窗體支持對象列表總是返回空值

回答

0

您需要參考您的元素列表如下HTML表單:

yourList[anIndex].aProperty 

例如

<form:form method="post" action="myAction" modelAttribute="productsForm"> 
    ... 
    <input name="products[3].name /> 
    ... 
</form:form> 

指第四產品的名稱,其中products是在一個列表你的表單對象bean(productsForm)。

+0

我已經改變了我到<輸入名稱=「LLIST [$ {VS。 index}}。valueVal「/>,正如你所建議的那樣。但仍然沒有得到列表對象 –

0

你可以嘗試添加屬性的ModelAndView

ModelAndView mav = new ModelAndView("viewForm"); 
mav.addAttribute("command",landb) 

它將形式可作爲$ {命令}

+0

我已經將它添加到ModelAndView創建時間。並且在創建html元素時,此對象已成功迭代。但是在提交表單時。我沒有再次得到這個對象。 –