我在将PrimeFaces从6.2.5更新至7.0.4时遇到了一个严重的问题。之前我使用的是以下方式的
inputMask
:<p:inputMask id="input" value="#{bean.inputs.id}" mask="^^ ^^ ^^ ^^ ^^"
requiredMessage="#{label.lblRequired}" >
<f:validator validatorId="Validator"/>
</p:inputMask>
还有一个 JavaScript 部分,我在其中定义了 "^" 的用法。
$.mask.definitions['^'] = '[A-Fa-f0-9]';
使用PrimeFaces 7.0.4后,我无法再使用这种模式,如您可以在此提交中看到: 链接到primefaces 的 Github。
另外,如果我使用这种方法,虽然将值填充在网页上,但是值仍然为空,我的问题是是否有其他方法可以添加正则表达式到输入的每个字段中?或者有任何模式我可能需要了解?
我尝试过的方法:
- 添加
<f:validateRegex pattern="[regex]"/>
--> 没有效果 - 添加
<p:keyFilter regEx="[regex]" />
--> 只在inputText上起作用 - 为每个 "^" 添加正则表达式 --> 无效
id="input"
看起来含糊不清。在可能的情况下,应避免使用id
属性,并且不要将所有事物都“超标识”,因为id
正在被 JSF/PF 引擎内部用于构建组件树。过度使用它可能会导致您无法自己解释的错误,直到您删除所有不需要的id
属性。小心! - Roland