0
我有一個持有用戶會話的類,例如用戶名,電話號碼和域。對於所有意圖和目的,這是它的基礎看起來的樣子:Grails 3調用外部方法
public class User {
private String username;
private String domain;
private List<GrantedAuthority> authorities = new ArrayList<>();
public void addRole(final String role) {
authorities.add(new SimpleGrantedAuthority(role));
}
public List<GrantedAuthority> getAuthorities() {
return authorities;
}
}
我有提取從背景下,這個用戶類,並呈現其屬性。這是這個類的樣子:
class UserSession {
def getLoggedInUser() {
User user = SecurityContextHolder.getContext().getAuthentication().getPrincipal()
println("################### we are gonna return " + user)
return user.domain + "\\" + user.username
}
}
我遇到的問題是,我不知道如何從主要佈局GSP(基本模板)調用getLoggedInUser。
我試圖做這樣的事情至今:
<g:set var="userSession" bean="UserSession"/>
<span id="userInfo">${userSession.loggedInUser}</span>
但是,頁面是空白和方法不會被調用。我的問題是:如何從基礎佈局gsp中調用一個方法,而不是在每個控制器中調用一個可以從特定的bean/class訪問的方法?
你是否試圖讓getLoggedInUser方法是靜態的? 順便說一句,不使用彈簧安全? 你可以做 –
sct999
啊,那秒:標籤就像一個魅力一樣工作。謝謝!我想你應該寫答案,所以我可以將它標記爲已回答 – angryip
我將它添加爲aswer :) – sct999