Spring-boot 使用 Thymeleaf模板each遍历list对象无效 收藏 评论
2015年12月07日

测试发现不能解析,后查原因是和对象类有关。


必须设置相关属性的getter方法,或将对象属性设为pubic , 如:

 public String firstName, lastName;


控制器

@Controller
public class GreetingController {
    @Autowired
    JdbcTemplate jdbcTemplate;

    @RequestMapping("/greeting")
    public String greeting(
            @RequestParam(value = "name", required = false, defaultValue = "World") String name,
            Model model) {
        model.addAttribute("name", name);

        System.out
                .println("Querying for customer records where first_name = 'Josh':");
        List<Customer> results = jdbcTemplate
                .query("select id, first_name, last_name from customers where first_name = ?",
                        new Object[] { "Josh" }, new RowMapper<Customer>() {
                            public Customer mapRow(ResultSet rs, int rowNum)
                                    throws SQLException {
                                return new Customer(rs.getLong("id"), rs
                                        .getString("first_name"), rs
                                        .getString("last_name"));
                            }
                        });

        for (Customer customer : results) {
            System.out.println(customer);
        }

        model.addAttribute("customers", results);

        return "greeting";
    }

}


对象

package hello;

public class Customer {
    private long id;
    public String firstName, lastName;

    public Customer(long id, String firstName, String lastName) {
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
    }

    @Override
    public String toString() {
        return String.format(
                "Customer[id=%d, firstName='%s', lastName='%s']",
                id, firstName, lastName);
    }
    
    public long getId() {
        return id;
    }
  

    // getters & setters omitted for brevity
}

模板

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Getting Started: Serving Web Content</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    <p th:text="'Hello, ' + ${name} + '!'" />
    
    <p th:text="'Hello, ' + ${customers} + '!'" />
    
     <table>
    <tr>
      <th>NAME</th>
      <th>PRICE</th>
      <th>IN STOCK</th>
    </tr>
    <tr th:each="customer, iterStat : ${customers}">
      <td th:text="${customer.id}">Onions</td>
      <td th:text="${customer.firstName}">2.41</td>
      <td th:text="${customer.lastName}">yes</td>
    </tr>
   
  </table>
  
  
    
</body>
</html>



Hello, [Customer[id=3, firstName='Josh', lastName='Bloch'], Customer[id=4, firstName='Josh', lastName='Long'], Customer[id=7, firstName='Josh', lastName='Bloch'], Customer[id=8, firstName='Josh', lastName='Long'], Customer[id=11, firstName='Josh', lastName='Bloch'], Customer[id=12, firstName='Josh', lastName='Long'], Customer[id=15, firstName='Josh', lastName='Bloch'], Customer[id=16, firstName='Josh', lastName='Long'], Customer[id=19, firstName='Josh', lastName='Bloch'], Customer[id=20, firstName='Josh', lastName='Long'], Customer[id=23, firstName='Josh', lastName='Bloch'], Customer[id=24, firstName='Josh', lastName='Long'], Customer[id=27, firstName='Josh', lastName='Bloch'], Customer[id=28, firstName='Josh', lastName='Long'], Customer[id=31, firstName='Josh', lastName='Bloch'], Customer[id=32, firstName='Josh', lastName='Long'], Customer[id=35, firstName='Josh', lastName='Bloch'], Customer[id=36, firstName='Josh', lastName='Long']]!
NAME     PRICE     IN STOCK
3     Josh     Bloch
4     Josh     Long
7     Josh     Bloch
8     Josh     Long
11     Josh     Bloch
12     Josh     Long
15     Josh     Bloch
16     Josh     Long
19     Josh     Bloch
20     Josh     Long
23     Josh     Bloch
24     Josh     Long
27     Josh     Bloch
28     Josh     Long
31     Josh     Bloch
32     Josh     Long
35     Josh     Bloch
36     Josh     Long

http://blog.webinno.cn/article/view/128

本文地址:http://blog.webinno.cn/article/view/128

发表于 @ 2015年12月07日 | 浏览3686次| 编辑 |评论(loading... ) | 分享到:QQ空间新浪微博腾讯微博微信

评论列表

发表评论