在jsf提交时,selectOneMenu validator仅在需要时运行=";“真的”;这是设定好的。为什么?

在jsf提交时,selectOneMenu validator仅在需要时运行=";“真的”;这是设定好的。为什么?,jsf,jakarta-ee,jsf-1.2,Jsf,Jakarta Ee,Jsf 1.2,我发现绑定到selectOneMenu的jsf验证器,只有在selectOneMenu具有required=“true”时才会调用onsubmit。如果没有该属性,如何将其解析为调用验证器 我发现绑定到selectOneMenu的jsf验证器,只有在selectOneMenu具有required=“true”时才会调用onsubmit 这确实是规范。顺便说一下,这也适用于所有其他输入元素 如果没有该属性,如何将其解析为调用验证器 你不能。如果需要最终用户选择项目,只需指定required=“t

我发现绑定到selectOneMenu的jsf验证器,只有在selectOneMenu具有required=“true”时才会调用onsubmit。如果没有该属性,如何将其解析为调用验证器

我发现绑定到selectOneMenu的jsf验证器,只有在selectOneMenu具有required=“true”时才会调用onsubmit

这确实是规范。顺便说一下,这也适用于所有其他输入元素


如果没有该属性,如何将其解析为调用验证器


你不能。如果需要最终用户选择项目,只需指定
required=“true”
属性即可。默认情况下,它是可选的,因为在某些情况下,您可能不要求最终用户选择项目。

那么,我如何仅在validator中执行字段必需的验证,因为在我的情况下,我需要在空的selectMenu值上执行对服务器的请求,但在设置了attribute required=“true”时我无法执行该操作。因此,允许使用空值?那我一点也不理解你的问题/担忧。具体的功能要求是什么?您希望执行什么样的验证?空值下拉列表,在选定的空值上,其他元素必须隐藏。所以我添加了一个4j:supportonchange来更新backbean和rerender动态元素上的下拉值。动态元素通过rendered=“condition”可见。问题是当我将下拉列表设置为required时,它并没有更新选中的空值上的bean值。我不理解具体的问题。也许您将设置
rendered
属性的方法过于复杂了。您只需将其设置为
rendered=“#{notempty bean.selectedValue}”
并让
a4j:support
重新呈现该组件。在未来,试着问真正的具体问题,而不是问一个修辞性的问题。