我有一个数据表,我在那里动态添加行(按一下按钮),让用户使用primefaces单元格编辑来编辑这些行。
我想为单元格添加验证,但是,当输入文本(在单元格中)是原始的时,验证不会发生。 为了使验证有效,用户必须在输入文本中实际写入内容(使其变脏),然后将其删除,然后才会启动验证(本案例所需)。
示例代码:
<f:view>
<p:growl autoUpdate="true"/>
<h:form>
<p:commandButton value="add row" update="table" action="#{myBean.addRow}"/>
<p:dataTable value="#{myBean.users}" var="var" id="table" editMode="cell" editable="true">
<p:column headerText="Quantity">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{var.name}"/>
</f:facet>
<f:facet name="input">
<p:inputText value="#{var.name}" required="true">
<f:validateRequired />
</p:inputText>
</f:facet>
</p:cellEditor>
</p:column>
</p:dataTable>
<p:commandButton value="submit" action="#{myBean.submit}"/>
</h:form>
</f:view>
使用primefaces 5.3和JSF 2.2。
更新: 从版本6.2开始修复此错误 https://github.com/primefaces/primefaces/issues/2512