2

我可以使用 Spring-MVC 登录。现在我想根据登录的用户更改菜单。如何使用 spring MVC 控制器将登录用户名传递到我的主页?这样我就可以使用该用户名并根据登录名更改菜单?是否有任何可用的框架?如果我想在成功登录后将一组对象(其中将包含分配给登录用户的操作)发送到我的主页怎么办?

有没有更好的方法呢?

任何建议将不胜感激。需要帮助。

4

2 回答 2

0

除了 Bhushan 的回答之外,您还可以使用自定义 UserDetails 类来存储与经过身份验证的用户有关的信息,并将值从控制器类传递给模型model.put("myParamName", myParam);

然后,在 JSP 中,无论有无authorize标签,您都可以使用${myParam}. 请注意,这不仅限于纯 HTML 内容;您也可以以这种方式传递 Javascript —— 请注意,虽然传递的内容可能是您喜欢的任何数据类型(无论如何,JSP 可以处理),但最终呈现时它将被视为字符串,所以您必须转义字符并包含换行符和/或制表符以获取冗长的内容和正确的格式。例如:

MyController.java

. . .

String myJavascript = "<script>\n\tvar myVar = \"Hello Dheeraj!\";\n\talert(myVar);\n</script";
model.put("someJavascript", myJavascript);

. . .

我的页面.jsp

${someJavascript}

现在,当调用该页面时,客户端将看到以下内容:

. . .

<script>
    var myVar = "Hello Dheeraj!";
    alert(myVar);
</script>

当然,您也可以传递数组等,并循环遍历项目以构建<select>元素等。用户特定的逻辑可能驻留在您的控制器类上(或从中调用)。

于 2013-04-24T17:30:31.573 回答
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>
于 2013-04-24T10:24:46.887 回答