我的Web應用程序有兩個角色User和Admin,每個角色都有不同的jsp頁面。現在我怎樣才能爲這兩個不同的用戶映射不同的歡迎文件? 服務器/ webapp/user.jsp用於用戶 服務器/ webpp/admin.jsp用於管理根據用戶在Spring中的角色映射歡迎文件
可以說,如果將歡迎文件添加爲user.jsp/user主頁。我如何爲admin用戶在user.jsp中添加一個條件?我覺得Cookie或過濾器可以提供幫助。
我的Web應用程序有兩個角色User和Admin,每個角色都有不同的jsp頁面。現在我怎樣才能爲這兩個不同的用戶映射不同的歡迎文件? 服務器/ webapp/user.jsp用於用戶 服務器/ webpp/admin.jsp用於管理根據用戶在Spring中的角色映射歡迎文件
可以說,如果將歡迎文件添加爲user.jsp/user主頁。我如何爲admin用戶在user.jsp中添加一個條件?我覺得Cookie或過濾器可以提供幫助。
你可以在控制器處理:
@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,我猜這是你正在使用的。
謝謝。比方說,我添加了歡迎文件作爲user.jsp /用戶主頁。我如何爲admin用戶在user.jsp中添加一個條件? – user7185698
好吧,你可以用JSTL, – viruskimera
看看[這裏](https://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm) – viruskimera
這裏有兩種變體。
變體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
如果這是第一頁(索引頁),你將如何確定用戶的角色?如果是儀表板/主頁,@Optio的解決方案工作 –