【问题标题】:Richfaces prohibit event by passing by userRichfaces 通过用户传递来禁止事件
【发布时间】:2013-09-05 12:09:21
【问题描述】:

我有一个文本框和值更改侦听器。并且有一个保存按钮。用户通过直接编辑 html 代码中的文本框值来避免/绕过值更改侦听器,然后将其保存。我怎样才能禁止用户,使他/她不能以这种方式改变价值?从而确保始终调用值更改侦听器。

我正在寻找一些通用机制来阻止所有输入/和事件侦听器上的此类情况。

谢谢

【问题讨论】:

    标签: events richfaces


    【解决方案1】:

    您需要接受用户实际上可以用他的客户端(浏览器)做他想做的一切。他可以禁用 Javascript、完全删除输入、更改验证或手动调用 Ajax 功能。他甚至可能不会使用浏览器并使用命令行工具发送 HTTP 请求。

    要禁止这样的事情是不可能的。

    另一方面,我认为如果您在h:inputText 上使用valueChangeListener,那么无论如何都应该调用它,因为它将在服务器端进行评估。可能是您以错误的方式编辑它,并且当您保存表单的内容时该值实际上并没有改变。 (通过向您的设置器添加断点来检查该值是否真的被设置)。

    如果您通过<f:ajax>event="change"listener 一起使用Ajax 功能,则无法通过手动编辑html 来防止绕过它。在您的保存方法中检查更改的值,或者改用valueChangeListener

    【讨论】:

    • 我使用
    • 无论我如何编辑,模型中的值都会更新。
    • valueChangeListener 总是像你说的那样被调用,因为它是服务器端的。但是 a4j:ajax 可以绕过
    • 如果总是被调用,问题在哪里?正如我所说,对于绕过 ajax 的用户,您无能为力。
    猜你喜欢
    • 2014-06-16
    • 1970-01-01
    • 2012-01-12
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多