Bas*_*suz 10 jsf facelets reset primefaces
我有一个Facelets视图如下:
<h:form id="f1">
<p:panelGrid id="p1" columns="2">
<p: inputText value="Distance Travelled::/><p:inputText value="#{airTransportUsage.distance}" immediate="true"
required="true" requiredMessage="Distance Travelled Field cannot be left blank.."
converterMessage="Distance Travelled must be a number"
validatorMessage="Distance Travelled must be a valid number.."
id="dis">
<f:validateLongRange minimum="1"/>
</p:inputText>
<p:commandButton value="Reset" action="#{airTransportUsage.reset}" update=":f1:p1" />
</p:panelGrid>
</h:form>
Run Code Online (Sandbox Code Playgroud)
单击重置按钮时,由于验证,永远不会执行相应的方法.我无法使用immediate="true"
我的重置按钮,因为它会产生一些其他问题.
Bal*_*usC 25
这些<p:commandButton>
过程确实默认为整个form(process="@form"
),您可以通过仅指定process
属性中的当前组件来更改它.
<p:commandButton value="Reset" ... process="@this" />
Run Code Online (Sandbox Code Playgroud)
但是,如果表单已经事先验证过,则会失败.已标记为无效的输入字段不会使用新模型值(您自己重置)更新.如果你正在使用PrimeFaces 3.4,那么嵌入<p:resetInput>
按钮:
<p:commandButton value="Reset" ... process="@this">
<p:resetInput target="@form" />
</p:commandButton>
Run Code Online (Sandbox Code Playgroud)
如果您尚未使用PrimeFaces 3.4且无法升级,则可以使用OmniFaces ResetInputAjaxActionListener
.
一个完全不同的选择是通过新的新GET请求刷新当前页面.
<p:button value="Reset" />
Run Code Online (Sandbox Code Playgroud)
小智 6
这在 PrimeFaces 5.3 中对我有用
<p:commandButton action="#{bean.reset()}" value="Reset" process="@this" update="@form" resetValues="true" />
Run Code Online (Sandbox Code Playgroud)
如果需要,您可以"@form"
将更新属性的目标替换为特定组件。
归档时间: |
|
查看次数: |
20354 次 |
最近记录: |