我的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的解决方案工作 –