java - 让Struts为不同的角色显示不同的JSP

标签 java jsp struts roles

我们有一个 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/

相关文章:

java - 命名查询的优点和缺点

java - JSTL 删除所有 session 属性

java - JSP MySQL Class.forName 错误

java - 我们可以将消息写入Java Web应用程序中的不同响应对象吗?

java - 如何知道从哪个类收到请求

java - Intellij Idea Tomcat 和 Spring MVC 模板

java - jsoup:向后遍历 Element 类型的对象

java - LogLevel.INFO 在 Jboss 日志中打印为 ERROR [STDERR],有什么问题吗?

Servlet 中变量的 Javascript 值未更新

java - tabbedpanel - 保留在当前选项卡上,但更改选项卡的内容