- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个密码输入字段,上面有一个 md5 转换器。该字段与我的 entity.password
字段(存储为 md5 哈希值)绑定(bind)。
我想在其上设置一个f:validateLength
,因此密码必须具有一定的长度。问题是“”空字符串也有一个 md5 哈希值。 validator 不检查实际输入,而是检查转换后的 md5 哈希值。
我可以在实际输入而不是转换后的输入上设置 validator 吗?
<ice:inputSecret value="#{user.employer.user.password}" converter="md5hashconverter">
<f:validateLength minimum="3" maximum="15"/>
</ice:inputSecret>
谢谢
编辑:我正在使用 Hibernate,我的支持 bean 也是“模型”管理 bean。我坚持使用 EntityManager。
最佳答案
你不能。
对我来说,这也不是进行哈希处理的正确位置。这不是“转换”(应该是双向的)。而是在数据访问层执行此操作,要么在 INSERT 之前亲自执行,要么仅通过获取数据库的内置函数来执行。它们中的大多数都提供某种 MD5()
函数,您可以在查询中使用该函数,例如 INSERT INTO user (name, pass) VALUES (?, MD5(?))
。
编辑:根据更新,您正在使用 Hibernate JPA。在这种情况下,您可以使用 JPQL 触发内部包含 MD5()
函数的“普通”保存查询,或者获取 EntityListener
( guide here ) 并按照 @PrePersist
执行操作,也可能对 @PreUpdate
执行操作。
关于java - JSF f :validateLength is processed after the converter, 但之前需要它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2200785/
验证字符串参数的长度时: [Parameter(Mandatory=$false)] [ValidateLength(6,128)] [string]$value 是否可以不强制执行最大 长度(只有最
这是我的第一个脚本,所以不要打败我! 我正在研究根据用户输入创建网络目录和AD组的脚本。以下是我到目前为止所获得的。它可以工作,但是我想做一些改进。 我想验证用户输入的长度。我找到了一篇文章(Powe
我想在按下按钮添加和按钮删除时禁用验证,所以我尝试了这个 按钮添加已被禁用,但是按钮删除没有。而且我不知道出什么问题了! 这是我的代码,你们能帮我检查一下吗?对不起,我的英语不好
这个问题在这里已经有了答案: Using validator with a variable attribute in ui:repeat (1 个回答) 关闭 2 年前。 我目前正在使用 Prim
我有一个密码输入字段,上面有一个 md5 转换器。该字段与我的 entity.password 字段(存储为 md5 哈希值)绑定(bind)。 我想在其上设置一个f:validateLength,因
我有很多字段需要验证长度。这不是 的问题标签。我还可以为此验证器添加自定义消息。 问题是应该为每个字段自定义消息。例如。 firstname字段应包含消息“名字太短”或“名字太长”,surname应
我是一名优秀的程序员,十分优秀!