Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用spring和tiles显示登录状态_Java_Spring_State_Apache Tiles - Fatal编程技术网

Java 使用spring和tiles显示登录状态

Java 使用spring和tiles显示登录状态,java,spring,state,apache-tiles,Java,Spring,State,Apache Tiles,我正试图理解根据spring和tiles的一些逻辑来改变页面外观的正确方法。例如,如果用户在登录前查看页面,然后在登录后查看页面,他们可能会看到一些不同的导航或操作。或者如果用户权限已更改。我是否应该为用户可能看到的每个不同状态设置一个不同的平铺定义,然后让控制器运行逻辑以查看它应该返回哪个定义?这似乎意味着平铺视图定义的数量可以快速增长。这仅仅是一种方式,还是有其他的方式来处理这个更简单的问题 谢谢如果您使用的是spring security(您用spring标记了您的问题),那么以下选项可能

我正试图理解根据spring和tiles的一些逻辑来改变页面外观的正确方法。例如,如果用户在登录前查看页面,然后在登录后查看页面,他们可能会看到一些不同的导航或操作。或者如果用户权限已更改。我是否应该为用户可能看到的每个不同状态设置一个不同的平铺定义,然后让控制器运行逻辑以查看它应该返回哪个定义?这似乎意味着平铺视图定义的数量可以快速增长。这仅仅是一种方式,还是有其他的方式来处理这个更简单的问题


谢谢

如果您使用的是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>
对于一些简单的事情,比如导航中的一些附加按钮,这很好用

但请注意,这只会切换视图中链接的可见性。您仍然必须保护控制器/服务,以确保只有登录的用户才能访问它们