2017-05-29 3 views
0

J'avais besoin d'utiliser Spring Spring MVC, nous avons dû prendre des entrées plusieurs lignes de données de l'utilisateur. La forme a de lignes quel utilisateur peut modifier et soumettre mon regard de code comme this.When j'ai essayé d'afficher la liste des zones, il est null Quelle sera la raisonPrintemps MVC: Formulaire de ligne multiple Envoyer

Selon moi,

<form data-th-action="@{/qprmonitorlottery}" method="POST" > 
     <section> 
      <div class="panel panel-default" style="margin-top: 15px;"> 
      <!-- Default panel contents --> 
      <div class="panel-heading">エリア間補完の有無</div> 
      <div class="panel-body"> 

       <div class="table-responsive"> 
       <table class="table table-bordered"> 
        <tr> 
        <th width="13%" style="background: #FFFFFF; border-top: 1px solid #ffffff; border-left: 1px solid #ffffff;" >&nbsp;</th> 
        <th colspan="3" style="text-align: center">都市規模</th> 
        </tr> 
        <tr> 
        <th>エリア </th> 
        <th width="28%">大都市 </th> 
        <th width="29%">中都市</th> 
        <th width="30%">郊外 </th> 

        </tr> 

        <tr data-th-each="qprLottery,stat : ${qprLottery}"> 
        <td data-th-text = "${qprLottery.areaName}">北海道 </td> 
        <td> <span style="display: inline-block; width: 80%"> 
         <input type="number" data-th-value = "${qprLottery.rate1}" class="form-control" data-th-name="firstRate +${stat.index}" required > 
         <span class="help-block with-errors"></span> 
         </span> <span style="position: relative; top:-10px;" >%</span> </td> 
        <td> <span style="display: inline-block; width: 80%"> 
         <input type="number" data-th-value = "${qprLottery.rate2}" class="form-control" data-th-name="secondRate +${stat.index}" required > 
         </span> <span style="position: relative; top:-10px;" >%</span> </td> 
        <td> <span style="display: inline-block; width: 80%"> 
         <input type="number" data-th-value = "${qprLottery.rate3}" class="form-control" data-th-name="thirdRate +${stat.index}" required > 
         </span> <span style="position: relative; top:-10px;" >%</span> </td> 

        </tr> 


       </table> 
       </div> 

      </div> 
      </div> 
     </section> 

     <div class="row"> 
      <div align="center" style="padding: 30 0px;"> 
      <button type="submit" class="btn btn-primary" value="実行">実行 
      </button> 
      </div> 
     </div> 
     </form> 

Controller est

 @RequestMapping(value = "/qprmonitorlottery", method = RequestMethod.POST) 
     public String setQprMonitorLottery(@Valid @ModelAttribute() MasterCitySizeAreaForm form, BindingResult result) { 

     CitySizeByAreaView a = new CitySizeByAreaView(); 
     System.out.println("Area list" + a.getRate1()); 
     System.out.println("Area list-------------" + form.getAreaList()); 

     if (result.hasErrors()) { 
      return "new-monitor-lottery"; 
     } 

     return "new-monitor-lottery"; 
     } 

classes de formulaire sont

public class MasterCitySizeAreaForm { 

    private ArrayList<CitySizeAreaForm> areaList; 

    public ArrayList<CitySizeAreaForm> getAreaList() { 
     return areaList; 
    } 

    public void setAreaList(ArrayList<CitySizeAreaForm> areaList) { 
     this.areaList = areaList; 
    }  
} 

forme de classe 2

public class CitySizeAreaForm { 

     private int areaId; 
     private Integer area; 
     private Integer citySize; 
     private String areaName; 
     private String citySizeName; 
     private Float rate1; 
     private Float rate2; 
     private Float rate3; 

     public CitySizeAreaForm() { 
     } 

     public CitySizeAreaForm(Integer area, String areaName, Float rate1, Float rate2, Float rate3) { 
     this.area = area; 
     this.areaName = areaName; 
     this.rate1 = rate1; 
     this.rate2 = rate2; 
     this.rate3 = rate3; 
     } 
    } 

Répondre

0

remplacer:

<tr data-th-each="qprLottery,stat : ${qprLottery}"> 

avec

<tr data-th-each="qprLottery,stat : ${qprLottery.areaList}">