ユーザー名、電話番号、ドメインなどのユーザーセッションを保持するクラスがあります。すべての意図や目的のために、これは、そのベースがどのように見えるかです: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>
しかし、ページが空白のままにして、メソッドが呼び出されることはありません。私の質問は次のとおりです。どのコントローラでもなく、特定のBean /クラスからアクセスできるベースレイアウトgspからメソッドを呼び出すにはどうすればよいですか?
getLoggedInUserメソッドを静的にしようとしましたか? Btw、春のセキュリティを使用していませんか? –
sct999
ああ、その秒:タグは魅力的に働いています。ありがとう!私はあなたが答えを書く必要があると思うので、私はそれを答えるとしてマークすることができます – angryip
私はaswerとしてそれを追加:) – sct999