如何在Thymeleaf中循环对象值?

时间:2014-12-25 05:16:39

标签: java oop spring-mvc thymeleaf

我有一个名为 Item.java 的对象,我已经设置了这样的值:

这是我的控制器类。我把它命名为HomeController.java

@Controller
public class HomeController {

    public HomeController(){

    }

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String home(Locale locale, Model model) {
        List<Item> ListItem = new ArrayList<Item>();

        ListItem.add(new Item("1","Pencil"));
        ListItem.add(new Item("2","Paper"));
        return "item";
    }

}

如何在我的Thymeleaf HTML页面中打印出对象值?

这就是我的所作所为:

<table class="table table-hover">
    <thead>
        <tr>
            <th><input type="checkbox" /></th>
            <th>Unique Item Code</th>
            <th>Item Name</th>
        </tr>
    </thead>
    <tbody>
        <tr th:each="mItem : ${Item}">
            <td><label type="text"
                    th:text="${mItem.code}" /></td>
            <td><label type="text"
                    th:text="${mItem.name}" /></td>
        </tr>
    </tbody>                            
</table>

为什么没有显示任何内容?由于我无法调试HTML页面,我只能调试我的Java类,它已经具有一定的价值。

1 个答案:

答案 0 :(得分:0)

您必须在控制器方法中将项目添加到模型中,如下所示:

@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
    List<Item> ListItem = new ArrayList<Item>();

    ListItem.add(new Item("1","Pencil"));
    ListItem.add(new Item("2","Paper"));

    model.addAttribute("Item", ListItem); // This is important

    return "item";
}

顺便说一句,您的变量名称不遵循标准的Java命名约定。我建议重命名它们(例如ListItem应该命名为items,您传递给视图的Item属性应该是items等。