我正在开发一个小型弹簧项目,其中登录页面有两种类型的用户admin和staff。登录尝试我想使用spring MVC4应用会话,并且还想根据用户角色(管理员或员工)打开jsp。 会话有四个/五个字段,如name,id,role,SessionId。我希望这些信息通过jsp页面传播。但我不想使用url参数传递来做到这一点。
我不知道该怎么做,因为我是春天的新人,这是我的第一个项目。请帮帮我。 如果有人可以提供示例代码并指导我,那么这将非常有帮助。
// Login.jsp代码
var MobileNo=$('#mobno').val();
var StaffPwd=$('#pwd').val();
$.ajax
(
{
url: "http://localhost:8080/OnlineStore/kmsg/grocery/Login",
type: "POST",
data: {MobileNo: MobileNo,StaffPwd: StaffPwd},
success: function(data)
{
var vUserRole = data["UserRole"];
var vUserName = data["UserName"];
if(data==="")
{
alert("Login Failed");
}
else
{
if(vUserRole == "Admin")
{
alert("Login Success: " + vUserName);
window.location.href = "http://localhost:8080/OnlineStore/JspPages/City.jsp";
}
if(vUserRole == "CityAdmin")
{
alert("Login Success: " + vUserName);
window.location.href = "http://localhost:8080/OnlineStore/JspPages/Locality.jsp";
}
if(vUserRole == "Staff")
{
alert("Login Success: " + vUserName);
window.location.href = "http://localhost:8080/OnlineStore/JspPages/CustomerOrder.jsp";
}
}
},
error: function(e)
{
alert('Error:' +e)
}
}
);
//这是控制器代码
@RequestMapping("/Login")
public @ResponseBody UserServiceModel selectStaff(@RequestParam Map<String,String> requestParams) throws Exception
{
String MobileNo = requestParams.get("MobileNo");
String StaffPwd = requestParams.get("StaffPwd");
return staffAdapter.login(MobileNo, StaffPwd);
}
--------------
答案 0 :(得分:0)
只需将数据存储在某个可序列化的对象中。例如:
public class SessionData implements Serializable {
private String name;
private String id;
private String role;
//etc..
}
然后在用户首次登录时将此对象设置为会话属性:
session.setAttribute("sessionData", new SessionData(name, id, role, etc...))
要在JSP页面中访问此对象,您可以使用:${sessionScope['sessionData']}
来访问特定字段:
${sessionScope['sessionData'].id}
${sessionScope['sessionData'].name}
${sessionScope['sessionData'].role}
要在JavaScript文件中访问这些属性,只需在JSP页面中定义一些页面数据,例如:
<script type="text/javascript">
pageData = {
id: "${sessionScope['sessionData'].id}",
name: "${sessionScope['sessionData'].name}",
role: "${sessionScope['sessionData'].role}"
}
</script>
并在js文件中通过以下方式引用它们:
pageData.id
pageData.name
pageData.role
我可以看到您尝试创建基于角色的应用程序。您已经在使用Spring MVC了,为什么不使用Spring Security呢?我强烈建议这样做,因为它会让你的生活更轻松。