2016-12-12 27 views
1

我的Web應用程序有兩個角色User和Admin,每個角色都有不同的jsp頁面。現在我怎樣才能爲這兩個不同的用戶映射不同的歡迎文件? 服務器/ webapp/user.jsp用於用戶 服務器/ webpp/admin.jsp用於管理根據用戶在Spring中的角色映射歡迎文件

可以說,如果將歡迎文件添加爲user.jsp/user主頁。我如何爲admin用戶在user.jsp中添加一個條件?我覺得Cookie或過濾器可以提供幫助。

+0

如果這是第一頁(索引頁),你將如何確定用戶的角色?如果是儀表板/主頁,@Optio的解決方案工作 –

回答

0

你可以在控制器處理:

@RequestMapping(value="/loginUser") 
    public String controllerLogin(){ 
     String userType = //code to get user type 

     //code to get view depending on the userType (like a switch) 

     return "view"; 
    } 

如果你沒有返回@RequestBody它當作視圖名稱的字符串。 這是來自Spring 3.X,我猜這是你正在使用的。

+0

謝謝。比方說,我添加了歡迎文件作爲user.jsp /用戶主頁。我如何爲admin用戶在user.jsp中添加一個條件? – user7185698

+0

好吧,你可以用JSTL, – viruskimera

+0

看看[這裏](https://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm) – viruskimera

1

這裏有兩種變體。

變體1.您可以使用註釋併爲每個角色製作不同的文件。 例如,您的管理員的角色爲"ROLE_ADMIN"

只需補充一點:

@PreAuthorize("hasRole('ROLE_ADMIN')") 
@RequestMapping("/login") 
public String getAdmin() { 
return "admin"; 
} 

與同爲用戶:

@PreAuthorize("hasRole('ROLE_USER')") 
@RequestMapping("/login") 
public String getUser() { 
return "user"; 
} 

變2.如果你想要做一些不同的.jsp文件內特殊的角色,使用這個:

<sec:authorize access="hasRole('ROLE_ADMIN')"> 
This content will only be visible to users who have 
the "ROLE_ADMIN" authority in their list of <tt>GrantedAuthority</tt>s. 
</sec:authorize> 

爲了使這個標籤工作 - 在t他begining the.jsp文件:

<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> 

更多authorize標籤here