对于我的应用程序,我希望拥有不同权限的用户.一个权限允许用户查看我的数据库中的数据,而另一个权限允许他们编辑数据.在登录时,我会检查他们的许可,以确定他们是否可以编辑数据.如果用户具有只读权限,我正在寻找一些方法来禁用整个页面.是否有一种简单的方法来禁用< h:form>中的所有内容标签?我需要能够禁用多个页面,希望通过查看supbean中的一个布尔值来实现.任何帮助将不胜感激.
-编辑-
是否有任何容器或类似物可以包裹我的输入可以设置为禁用?这样我只需要在一个地方引用diable,并且如果在我拥有的其他逻辑中需要,还可以让每个字段设置自己的禁用属性?
解决方法
您可以禁用按钮,链接,输入字段(允许编辑的所有内容)等…将它们全部指向支持bean中的相同值.
<h:inputText disabled="#{!bean.permissionToWrite}">
我不知道如何禁用表单中包含的所有内容,但您可能不希望这样做,因为您可能希望用户提交带有表单的搜索查询(即搜索框).
更新:回答Alex Larzelere的评论.
在这种情况下,恕我直言最好使用禁用而不是渲染,因为您可能希望在inputText框中向用户显示字段的值,但不允许他修改它.如果你不渲染它,他就看不到它.您也可以使用outputText来显示它,但是您必须维护两个元素而不是一个元素.
更新回答问题中的编辑:例如,您可以将组件包装在h:panelGroup中并根据您的逻辑进行渲染,但是您无法禁用h:panelGroup内部的输入字段,您必须单独执行此操作.