Java 使用spring和tiles显示登录状态
我正试图理解根据spring和tiles的一些逻辑来改变页面外观的正确方法。例如,如果用户在登录前查看页面,然后在登录后查看页面,他们可能会看到一些不同的导航或操作。或者如果用户权限已更改。我是否应该为用户可能看到的每个不同状态设置一个不同的平铺定义,然后让控制器运行逻辑以查看它应该返回哪个定义?这似乎意味着平铺视图定义的数量可以快速增长。这仅仅是一种方式,还是有其他的方式来处理这个更简单的问题Java 使用spring和tiles显示登录状态,java,spring,state,apache-tiles,Java,Spring,State,Apache Tiles,我正试图理解根据spring和tiles的一些逻辑来改变页面外观的正确方法。例如,如果用户在登录前查看页面,然后在登录后查看页面,他们可能会看到一些不同的导航或操作。或者如果用户权限已更改。我是否应该为用户可能看到的每个不同状态设置一个不同的平铺定义,然后让控制器运行逻辑以查看它应该返回哪个定义?这似乎意味着平铺视图定义的数量可以快速增长。这仅仅是一种方式,还是有其他的方式来处理这个更简单的问题 谢谢如果您使用的是spring security(您用spring标记了您的问题),那么以下选项可能
谢谢如果您使用的是spring security(您用spring标记了您的问题),那么以下选项可能是一个选项:
<ul id="navigation">
<li>
<a href="..">Everyone can see this link</a>
</li>
<sec:authorize access="hasRole('SomeRole')">
<li>
<a href="..">Only users with role SomeRole can see this link</a>
</li>
</sec:authorize>
</ul>
-
-
对于一些简单的事情,比如导航中的一些附加按钮,这很好用
但请注意,这只会切换视图中链接的可见性。您仍然必须保护控制器/服务,以确保只有登录的用户才能访问它们