我有一个页面,我编辑一些实体.该页面有两个命令按钮.一个是"后退",一个是"保存",并且在该页面上我还有输入字段(idInputSubject).其中一些是必需的,一些则不是.
如何确保我按"后退"按钮(取消编辑并返回)验证将被忽略,现在情况并非如此.现在,当我按下"返回"或"保存"按钮时,如果我没有用正确的值(idInputSubject)填充所需的文件,则会出现验证消息.
"后退"和"保存"按钮的形式相同:
<h:form id="idFormMeasureDetail" styleClass="bodyForm" prependId="false">
...
<p:commandButton value="#{contentMB.msg.label_back.value}"
action="#{chooseMeasureControllerMB.aSearch}"
rendered="#{detailMeasureMB.navigation eq 0}" ajax="false"
icon="ui-icon-arrowreturnthick-1-w"/>
<p:commandButton value="#{contentMB.msg.button_save.value}" ajax="false"
icon="ui-icon-disk" actionListener="#{detailMeasureControllerMB.alApplyChanges}"
title="#{contentMB.msg.tip_Apply.value}" />
...
<p:inputTextarea id="idInputSubject" value="#{detailMeasureMB.measure.aufgabe}"
readonly="#{!userSessionMB.supervisor and !detailMeasureMB.isCreator}"
required="#{globalSessionMB.globalWebOptionsMap['MMRequiredSubject'].propvalue}"
title="#{contentMB.msg.tip_Betreff.value}"
autoResize="false" style="width:100%;" >
</p:inputTextarea>
<p:message id="inputSubjectMsg" for="idInputSubject" display="icon" />
...
</h:form>
Run Code Online (Sandbox Code Playgroud)
ChooseMeasureControllerMB:
@ManagedBean(name = "chooseMeasureControllerMB")
@RequestScoped
public class ChooseMeasureControllerMB extends BaseMeasureControllerMB {
...
public String aSearch() {
...
// navigate to target-page
return "/pages/mm/showMeasuresList.xhtml?faces-redirect=true";
}
...
}
Run Code Online (Sandbox Code Playgroud) 最初immediate
flag仅用于ActionSource
接口.但后来它也被添加到EditableValueHolder
界面中.设计决策的原因是什么?