private void setDefaultResponsePageIfNecessary() {
if(!continueToOriginalDestination()) {
if(session.getRoles().equals("ROLE_ADMIN")){
setResponsePage(SearchForCapacity.class);
System.out.println("Role for Admin:" + session.getRoles());
} else if (session.getRoles().equals("ROLE_USER"));
setResponsePage(HomePage.class);
System.out.println("Role for User: " + session.getRoles());
}
}
大家好,这个摘录来自我的登录类,除了不会重定向到正确的页面外,它的工作正常。我可以将角色打印到控制台,所以对于管理员来说,它会打印ROLE_ADMIM等。问题是无论它总是导航到同一页面的角色(HomePage),有谁知道这是为什么?感谢。
答案 0 :(得分:2)
else if
语句被;
终止,而不是使用{
打开一个块。
private void setDefaultResponsePageIfNecessary() {
if(!continueToOriginalDestination()) {
if(session.getRoles().equals("ROLE_ADMIN")){
setResponsePage(SearchForCapacity.class);
System.out.println("Role for Admin:" + session.getRoles());
} else if (session.getRoles().equals("ROLE_USER")) {
setResponsePage(HomePage.class);
System.out.println("Role for User: " + session.getRoles());
}
}
}
答案 1 :(得分:1)
您还应该使用getRoles().contains()
代替getRoles().equals()
。