2016-12-12 30 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