I am using the 10/4/06 version of Shale.
I have an h:form containing a h:panelGrid whose footer contains a
h:commandButton in its footer as follows:
<h:commandButton action="#{systemOperatorMnt.create}"
id="mntButtonsCreate"
value="Create"/>
I fill in the form and click the "Create" button and my form clears
without the "create" method being executed.
I fill in the form again (so I get past validation) and click the
"Create" button. This time the "create" method is executed.
I must be missing something. Could you please tell me:
Why is my form being cleared the first time I click "Create"?
Why do I need to click the "Create" button twice?
Thanks in advance,
Dick Starr
P.S. My form is included below.
<%-- operatorMnt.jsp
2006-10-27 RJS. New.
--%>
<%@ include file="/jspf/common/taglibs.jsp" %>
<%@ include file="/jspf/common/messages.jsp" %>
<h:form id="operatorMnt">
<h:panelGrid
border="1"
cellspacing="2"
cellpadding="2"
columns="2"
footerClass="starraPanelGridFooter"
headerClass="starraPanelGridHeader"
styleClass="starraBody">
<f:facet name="header">
<h:outputText value="#{msg['class.SystemOperatorMnt']}"/>
</f:facet>
<h:outputLabel styleClass="starraReadonly">
<h:outputText value="#{msg['app.Operator.id']}"/>
<h:outputText value="#{msg['symbol.sep1']}"/>
</h:outputLabel>
<h:panelGroup>
<h:inputText id="syOperatorId" readonly="true"
value="#{systemOperatorMnt.syOperatorId}"/>
</h:panelGroup>
<h:outputLabel for="name">
<h:outputText value="#{msg['app.Name']}"/>
<h:outputText value="#{msg['symbol.sep1']}"/>
</h:outputLabel>
<h:panelGroup>
<h:inputText id="name" maxlength="48" required="true" size="36"
value="#{systemOperatorMnt.name}">
<f:validateLength minimum="4" maximum="48"/>
</h:inputText>
<h:message for="name" styleClass="starraMsgError"/>
</h:panelGroup>
<h:outputLabel for="logonName">
<h:outputText value="#{msg['app.Logon.name']}"/>
<h:outputText value="#{msg['symbol.sep1']}"/>
</h:outputLabel>
<h:panelGroup>
<h:inputText id="logonName" maxlength="24" required="true"
size="24" value="#{systemOperatorMnt.logonName}">
<f:validateLength minimum="4" maximum="24"/>
</h:inputText>
<h:message for="logonName" styleClass="starraMsgError"/>
</h:panelGroup>
<h:outputLabel for="logonPassword">
<h:outputText value="#{msg['app.Logon.password']}"/>
<h:outputText value="#{msg['symbol.sep1']}"/>
</h:outputLabel>
<h:panelGroup>
<h:inputText id="logonPassword" maxlength="24" required="true"
size="24" value="#{systemOperatorMnt.logonPassword}">
<f:validateLength minimum="4" maximum="24"/>
</h:inputText>
<h:message for="logonPassword" styleClass="starraMsgError"/>
</h:panelGroup>
<h:outputLabel for="logonBegDate">
<h:outputText value="#{msg['app.Logon.beg.date']}"/>
<h:outputText value="#{msg['symbol.sep1']}"/>
</h:outputLabel>
<h:panelGroup>
<h:inputText id="logonBegDate" required="true"
value="#{systemOperatorMnt.logonBegDate}">
<f:convertDateTime dateStyle="short"/>
</h:inputText>
<h:message for="logonBegDate" styleClass="starraMsgError"/>
</h:panelGroup>
<h:outputLabel for="logonEndDate">
<h:outputText value="#{msg['app.Logon.end.date']}"/>
<h:outputText value="#{msg['symbol.sep1']}"/>
</h:outputLabel>
<h:panelGroup>
<h:inputText id="logonEndDate" required="true"
value="#{systemOperatorMnt.logonEndDate}">
<f:convertDateTime dateStyle="short"/>
</h:inputText>
<h:message for="logonEndDate" styleClass="starraMsgError"/>
</h:panelGroup>
<h:outputLabel styleClass="starraReadonly">
<h:outputText value="#{msg['app.Row.operator.id']}"/>
<h:outputText value="#{msg['symbol.sep1']}"/>
</h:outputLabel>
<h:panelGroup>
<h:inputText readonly="true" size="6"
value="#{systemOperatorMnt.rowSyOperatorId}"/>
</h:panelGroup>
<h:outputLabel for="rowCreated" styleClass="starraReadonly">
<h:outputText value="#{msg['app.Row.created']}"/>
<h:outputText value="#{msg['symbol.sep1']}"/>
</h:outputLabel>
<h:panelGroup>
<h:inputText id="rowCreated" readonly="true"
value="#{systemOperatorMnt.rowCreated}">
<f:convertDateTime dateStyle="short" timeStyle="short"/>
</h:inputText>
<h:message for="rowCreated" styleClass="starraMsgError"/>
</h:panelGroup>
<h:outputLabel for="rowUpdated" styleClass="starraReadonly">
<h:outputText value="#{msg['app.Row.updated']}"/>
<h:outputText value="#{msg['symbol.sep1']}"/>
</h:outputLabel>
<h:panelGroup>
<h:inputText id="rowUpdated" readonly="true"
value="#{systemOperatorMnt.rowUpdated}">
<f:convertDateTime dateStyle="short" timeStyle="short"/>
</h:inputText>
<h:message for="rowUpdated" styleClass="starraMsgError"/>
</h:panelGroup>
<f:facet name="footer">
<%@ include file="/jspf/common/mntButtons.jsp" %>
</f:facet>
</h:panelGrid>
</h:form>