无法在null上找到Thymeleaf Property或字段'datas'

时间:2016-09-30 21:46:51

标签: spring-mvc spring-boot thymeleaf

我收到错误:在thymeleaf上找不到属性或字段'datas'。

我见过类似的问题,但是我的代码找不到问题。

基本上,我有一个名为Months的对象列表,它有两个属性:Name(String)和Dates(List)。

这是控制器

@PostConstruct
   public void inicializar() {
         System.out.println("INICIALIZANDO...");             
         months = DrawCalendarTable.calendarTable(2016); // list of object 'months' with name and list of dates as string
         for(Months month : months){
             System.out.println(month.toString()); //just for test... print the data i want correctly
         }
   }

   @RequestMapping("/calendario")
   public ModelAndView listar(){
    ModelAndView mv = new ModelAndView("calendarTable");        
    mv.addObject("listOfMonths", months);
    return mv;

这是HTML

 <table class="table table-striped table-bordered"
                    style="vertical-align: center">
                    <thead>
                        <tr>
                            <th>Nome</th>
                            <th th:each="months : ${listOfMonths}" th:text="${months.name}">months</th> <!-- This works just fine. Also, if i use ${months.datas} it also works-->                                                          
                            <!-- Lista de Meses -->
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <!-- Lista Funcionarios -->
                            <td th:text="Anderson">Anderson</td>                                
                            <td >
                                <table class="table table-bordered">
                                    <tr th:each="days : ${months.datas}"> <!-- Here, months.data does not work. ERROR: CANNOT BE FOUND ON NULL-->
                                        <td th:text="F"></td>
                                        <!-- Desenha celulas de dia, de acordo com o mes -->
                                    </tr>
                                </table>
                            </td>
                        </tr>
                    </tbody>
                </table>

我在Object Months上有该字段的正确get方法:

public List<String> getDatas() {
    return datas;
}

1 个答案:

答案 0 :(得分:0)

您添加到模型中的对象名为&#34; listOfMonths。&#34;您的模型上没有名为&#34; months&#34;的对象,所以当它到达此行时:

<tr th:each="days : ${months.datas}">

月是空的。顶线有效,因为您已经定义了&#34;月&#34;在你使用它之前。

th:each="months : ${listOfMonths}"