为什么 f:validateRegex 不捕获无效输入

Why f:validateRegex does not catch invalid input

我在我的 JSF 中使用 f:validateRegex 来确保用户输入 h:inputText 中以 2 个大写字母开头的值, 后跟 6 位数字,然后是 2 个大写字母。然而,当我 输入“a45”的值 f:validateRegex 不会将其标记为 错误。

这里是源代码:

<h:column>
                        <f:facet name="header">Part Number</f:facet>
                        <h:inputText id="pnumber"
                            value = "#{p.number}"
                                    size = "15"
                                    rendered = "#{p.canUpdate}">
                        <f:validateRegex
                            pattern="^[A-Z]{2}[0-9]{6}[A-Z]{2}"
                            for="pnumber"
                            />
                    </h:inputText>
                        <h:outputText value = "#{p.number}"
                                      rendered = "#{not p.canUpdate}" />
                    </h:column>

有什么办法吗?
谢谢

请避免使用 Oracle 或 Apache 文档。它们极其深奥、晦涩、措辞不佳(通常由离岸资源产生),通常是陈旧的,通常令人厌恶。如果我想了解某些东西是如何工作的,我只是 google(即 f:validateRegex 的例子),这会产生一些很好理解的例子,并有清晰的解释。