2011-03-14 71 views
0
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)的角色,有人知道这是为什么吗?谢谢。窗体不正确重定向Wicket

回答

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()); 
     } 
    } 
} 
+0

干得好,很好看。 – biziclop 2011-03-14 18:43:12

+0

斑点!谢谢。 – Matthew 2011-03-15 09:25:01

1

您还应该使用getRoles().contains()而不是getRoles().equals()