我有一个bean动作,它将根据给定的字段数据设置值
public void fillSample(final String sin) {
setParticipantSinInput(sin);
participant.setEmail(sin + "@example.com");
participant.setName("Archie " + sin);
setGenderAtBirthInput(Gender.MALE);
}
我想使用页面上的按钮/链接触发它但我不希望它验证输入。目前我在日志中得到以下内容
[WARNING ] There are some unhandled FacesMessages, this means not every FacesMessage had a chance to be rendered.
These unhandled FacesMessages are:
- Social Insurance Number: Validation Error: Value is required.
- Name: Validation Error: Value is required.
- Gender at birth: Validation Error: Value is required.
- E-mail: Validation Error: Value is required.
或者日志中没有显示任何内容但数据字段未填充。或者出现验证。
到目前为止,我已尝试过以下内容
<p:commandLink value="fill" action="#{participantBean.fillSample(participantBean.generatedSin)}"
update="@form"/>
<p:commandLink value="fill" action="#{participantBean.fillSample(participantBean.generatedSin)}"
immediate="true" update="@form"/>
<p:commandLink value="fill" action="#{participantBean.fillSample(participantBean.generatedSin)}"
immediate="true" update="@all"/>
<p:commandButton value="fill" action="#{participantBean.fillSample(participantBean.generatedSin)}"
immediate="true" update="@form"/>
答案 0 :(得分:0)
这种组合起作用
<p:commandLink value="fill"
action="#{participantBean.fillSample(participantBean.generatedSin)}"
update="@form" process="@this">
<p:resetInput target="@form" />
</p:commandLink>
因此它会更新当前表单并且只处理@this
,我猜这是按钮,因此它不会在整个表单上执行验证。
此外,如果表单处于无效状态,则需要resetInput
。