2016-12-30 34 views
1

我有jpa具有id和名稱列的Entiy表。我想顯示名稱值到百里香的視圖。現在我能夠在視圖中看到實體對象,但不能看到名稱的列值。繼承人如何我創建表和定義getter和setter方法:將JPA實體表數據顯示到thymeleaf視圖

@Entity 
@Table(name = "Book") 
public class Book extends AbstractPersistable<Long> { 

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
@Column(name = "id") 
private Long id; 

@Column(name = "name") 
private String name; 

public Long getID() { 
    return this.id; 
} 

public String getContent() { 
    return this.name; 
} 

public void setID (Long id) { 
    this.id = id; 
} 

public void setContent (String name) { 
    this.name = name; 
    } 
} 

從控制器,這是我怎麼想設置內容:`

@Controller 
@RequestMapping("/") 
public class BookController { 

@Autowired 
private BookRepository bookRepository; 

@RequestMapping("/addBook") 
@ResponseBody 
public String addBook(@RequestParam("name") String name) { 
    Book book = new Book(); 

    book.setContent(name); 
    bookRepository.save(book); 
    return name; 

} 

@RequestMapping(value = "book", method = RequestMethod.GET) 
    public String books(Model model) { 
    model.addAttribute("books", bookRepository.findAll()); 
    return "book"; 
    } 

} 

的thymeleaf視圖模板:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> <head lang="en"> <meta charset="UTF-8" /> <title>Books</title> </head> <body> <h1>Books Database</h1> <ul th:each="book : ${books}"> <li th:text="${book.name}"></li> </ul>
</body> </html>

當我從addBook頁面添加新書籍並訪問書頁以查看書名時,出現此錯誤:評估SpringEL表達式的異常:「book.name」。在IDE控制檯中發現的錯誤爲:org.springframework.expression.spel.SpelEvaluationException:EL1008E:在'sec.book.BookNames'類型的對象上找不到屬性或字段'name'。什麼可能是錯的?

在視圖中,如果我使用th:text =「$ {book},那麼Entity對象的列表對於表中的每一行都是這樣顯示的,如下所示:類型爲sec.helloworld.Book的實體ID:。?。空

我只是想這本書的名字露面不是對象我應該怎樣做預先感謝您的時間

回答

4

的名字Yoor吸氣必須命名的getName() (SpEL = Spring Expresion Language) setter也應該是setName,

+0

非常感謝您的回答。編號改變他們,現在它完美的作品。我在列表視圖中獲取所有圖書的名稱。我會回答這個問題。 – Gustav