需要重新启动 Eclipse 才能显示表单元素

Need to restart Eclipse in order to get form elements to show up

我开发了一个小型 JSF 2.2 网络应用程序,其中包含一些输入文本字段。现在项目运行良好,但问题是当我第二次在 GlassFish 4.0 上执行我的程序时,一些表单元素没有显示出来。每当我想第二次执行我的程序时,我需要重新启动 eclipse 然后执行,然后只显示所有表单元素。我无法理解问题出在哪里,甚至错误日志也很清楚。

第二次执行程序时,Date-in之后的表单元素没有出现。托管 bean 具有 getters-Setters 和一种将表单输入插入数据库的方法。我找不到我在代码中犯了什么错误,会不会是 GlassFish 的问题?

XHTML 代码:

    <!--Name -->
    <h:outputLabel for="fnm" value="First Name:*" style="font-weight:bold" />
</div>
<p:inputText id="fnm" value="#{userData.fnm}"
    validatorMessage="First Name cannot be left blank and must be greater than 3 characters">
    <f:validateLength minimum="4" />
    <p:ajax execute="currentInput" update="firstname" event="blur" process="@this" />
</p:inputText>
<p:message for="fnm" id="firstname" display="icon,text" />

<!-- Time and Date In of the Visitor -->
<p:calendar id="datein" readonlyInput="true" pattern="MM/dd/yyyy" value="#{userData.datein}"
    required="true" mindate="today">
    <f:convertDateTime pattern="MM/dd/yyyy" />
</p:calendar>
<script>
    today = Date();
</script>
<p:calendar id="timein" readonlyInput="true" value="#{userData.timein}" required="true"
    pattern="HH:mm a" timeOnly="true" mintime="time" />

<!-- Expected Time and Date out -->
<p:calendar id="edateout" readonlyInput="true" value="#{userData.edateout}" required="true"
    mindate="today" />
<p:calendar id="etimeout" readonlyInput="true" value="#{userData.etimeout}" pattern="HH:mm a"
    timeOnly="true" />

<!-- Vehicle Category -->
<p:selectOneMenu id="vcat" value="#{userData.vcat}" editable="true">
    <f:selectItem itemLabel="Truck" itemValue="truck" noSelectionOption="true" />
</p:selectOneMenu>

<p:commandButton value="Submit" action="#{userData.add}" align="center" ajax="false" />

问题已解决,我在提交值后清除了表单,现在它的工作非常好。由于我之前提交的表单的会话数据,该表单未显示某些字段。

问题可能出在日期值上,因为提交的表单有以前的值,primefaces 的日历元素将无法呈现。要使日历元素正确呈现,您必须清除旧值,一种方法是您可以使日历值无效,一旦这些值提交到您的数据库 table,但请确保您不会使用不再是变量,一旦你使你的值无效,你将无法在任何时候使用它们。