2016-12-30 4 views
1

idとnameカラムを持つjpa Entiyテーブルがあります。私はthymeleafビューに名前の値を表示したいと思います。今はビューのEntityオブジェクトを見ることができますが、nameのカラム値は見ることができません。これは私が内容を設定しようとしていますどのようにコントローラから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>

私はテーブルと定義されたゲッターとセッターを作成する方法HERESに

addBookページから新しい本を追加して書籍ページにアクセスしてブック名を表示すると、次のエラーが表示されます。例外:SpringEL式の評価: "book.name"。 IDEコンソールで、次のエラーが見つかりました:org.springframework.expression.spel.SpelEvaluationException:EL1008E: 'name'プロパティまたはフィールドが 'sec.book.BookNames'タイプのオブジェクト上に見つかりません。何が間違っていますか?

私はth:text = "$ {book}を使用すると、テーブルの各行に対してEntityオブジェクトのリストが表示されます。これは次のように表示されます:sec.helloworld.BookのエンティティID:ヌル

私はちょうどどのように私はそれを行うことになっていますブック名はオブジェクトのない表示にしたいあなたの時間を事前に感謝名の

答えて

4

YoorゲッターはのgetName(名前を付けなければなりません)。?。 ExpressionLanguage(SpEL = Spring Expresion Language)で見つかるようにしてください。 setterもsetNameでなければなりません。

+0

ありがとうございます。 idはそれらを変更し、今は完全に動作します。私はリストビューですべての本の名前を取得します。私は答えたように質問をします。 – Gustav

関連する問題