我们有一个 Struts 2 网络应用程序,几乎每个员工都使用它来管理和配置我们服务器场的作业。我们正在制定一个计划,为客户制作一个仪表板,这样他们就可以看到自己的工作,并非常简单地显示其状态(“处理中”、“准备打样”、“完成”等)。客户可以看到的所有页面的信息都比员工的 View 少得多,并且无法编辑或更改任何内容。但最终,它们本质上是同一信息的两种独立 View :一种非常简单,另一种更复杂且可控。
最简单的方法是在每个 jsp 中都包含 if/elses:
<s:if test="user.role == 'customer'">
<!-- TODO - Display simple customer view -->
</s:if>
<s:else>
<!-- TODO - Display complex employee view -->
</s:else>
有没有更简单的方法来做到这一点?我可以创建两个单独的 jsps 目录,一个名为“customer”,一个名为“employee”(或默认值或其他名称),然后让 Struts 在我的操作中关闭一个属性以决定要检查哪个目录吗?
或者有其他方法可以做到这一点吗?
最佳答案
我建议在您的 Controller 中管理它。为客户添加一个新 View ,并检查用户在您的 Controller 中的角色并显示适当的 View 。这将使您现有的 View 保持不变,并增加了为您的客户提供真正自定义 View 的能力。
关于java - 让Struts为不同的角色显示不同的JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/839547/