我正在使用Spring Boot和Fremarker作爲模板引擎創建一個簡單的博客應用程序。所以基本上我有作者和郵政。 我有一個navbar.tfl這是一個局部視圖。所以當我在這個部分視圖中選擇作者下拉列表時,我想列出所有作者的名字,幷包含顯示其所有帖子的鏈接。春季 - 如何在局部視圖中訪問對象
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="/">FSM IT</a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="/">Home</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Posts <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="/post/list">List</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Authors <span class="caret"></span></a>
<ul class="dropdown-menu">
<!-- GET ALL AUTHORS HERE. HOW? -->
</ul>
</li>
</ul>
<p class="navbar-text navbar-right">Signed in as <a href="#" class="navbar-link">Guest User</a></p>
</div>
</div>
</nav>
問題是導航欄是局部視圖,所以它被所有視圖共享。我知道我們可以在控制器中執行諸如model.addAttribute(「authors」,authorRepository.findAll())之類的東西,以將它傳遞給視圖,但由於navbar是局部的,我必須在我的所有控制器中這樣做。
在Ruby on Rails的,我會做這樣的事情在我看來:
<% Author.all.each do |author| %>
然後閱讀我的導航欄局部視圖所有作者姓名。
但是,隨着春天,我不知道如何做到這一點。
你能幫我解決嗎?
這裏是我的作者庫(延伸CrudRepository,所以我必須爲作者一個的findAll方法):
package com.example.repository;
import com.example.domain.Author;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface AuthorRepository extends CrudRepository<Author, Long> {
}
的作者域:
package com.example.domain;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import java.util.List;
@Entity
public class Author {
@Id
@GeneratedValue
private Long id;
private String firstName;
private String lastName;
private String email;
// Posts
@OneToMany(mappedBy = "author")
private List<Post> posts;
private Author() {}
public Author(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "Author{" +
"id=" + id +
", firstName='" + firstName + '\'' +
", lastName='" + lastName + '\'' +
'}';
}
}
你搖滾。非常感謝Johannes。工作完美無瑕! – Fernando
不客氣。你會幫我一個忙,如果你正式將這個答案標記爲接受的答案:-)。謝謝 –
完成!謝啦。 – Fernando