我可以使用Spring-MVC登录。 现在我想根据登录用户更改菜单。 如何使用spring MVC Controller将login-username传递给我的主页? 这样我就可以使用UserName并根据Login-name更改菜单? 有没有可用的框架? 如果我想在成功登录后将一组对象(包含分配给登录用户的操作)发送到我的主页,该怎么办?
有没有更好的方法呢?
任何建议都会受到更多赞赏。需要帮助。
答案 0 :(得分:0)
如果你想根据角色来处理这个问题,那么spring security会提供jsp taglib来处理这个问题。
http://static.springsource.org/spring-security/site/docs/3.0.x/reference/taglibs.html
实施例
<sec:authorize access="hasRole('supervisor')">
This content will only be visible to users who have
the "supervisor" authority in their list of <tt>GrantedAuthority</tt>s.
</sec:authorize>
答案 1 :(得分:0)
除了Bhushan的答案,您还可以使用自定义UserDetails类来存储与经过身份验证的用户相关的信息,并使用model.put("myParamName", myParam);
然后,在JSP中,无论有没有authorize
标记,您都可以使用${myParam}
引用模型属性。请注意,这不仅限于纯HTML内容;您也可以以这种方式传递Javascript - 只是要警惕这样一个事实:虽然传递的内容可能是您喜欢的任何数据类型(无论如何都可以处理JSP),但最终呈现时它将被视为String,因此你必须转义字符并包含换行符和/或标签,以获取冗长的内容和正确的格式。例如:
<强> MyController.java 强>
. . .
String myJavascript = "<script>\n\tvar myVar = \"Hello Dheeraj!\";\n\talert(myVar);\n</script";
model.put("someJavascript", myJavascript);
. . .
<强> myPage.jsp 强>
${someJavascript}
现在,当调用该页面时,客户端将看到以下内容:
. . .
<script>
var myVar = "Hello Dheeraj!";
alert(myVar);
</script>
您当然也可以传递数组等,并循环遍历项目以构建<select>
元素等。特定于用户的逻辑可能位于您的控制器类中(或从中调用)。