2016-12-30 4 views
1

У меня есть таблица jpa Entiy с столбцом id и name. Я хочу отобразить значения имен в представлении тимелеафа. Сейчас я могу видеть объект Entity в представлении, но не значения столбца для имени. Вот как я создал таблицу и определены методы получения и установки:Отображение данных таблицы сущностей JPA на вид тимелеафа

@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: свойство или поле 'name' не могут быть найдены на объекте типа sec.book.BookNames. Что может быть неправильным?

В представлении, если я использую th: text = "$ {book}, тогда список объектов Entity выглядит так, как это для каждой строки из таблицы. Это то, что показано: Entity типа sec.helloworld.Book with ID:..?. пустой

Я просто хочу, названия книг, чтобы показать не предметы Как я должен сделать это заранее спасибо за ваше время

ответ

4

Yoor геттер для имени должен быть назван GetName() для того, чтобы найти ExpressionLanguage (SpEL = Spring Expresion Language). Установщик также должен быть установленName.

+0

благодарит вас за ваш ответ. id меняет их, и теперь он работает отлично. Я получаю все названия книг в списке. Я отвечу на вопрос как можно скорее. – Gustav