Jsf 单击h:commandButton连接日期对象

Jsf 单击h:commandButton连接日期对象,jsf,primefaces,java,Jsf,Primefaces,Java,我使用的是Primefaces 3.1.1。一般来说,JSf是非常新的。 我的表单上有两个日历输入字段: <p:calendar widgetVar="widgetFromDate" id="ID1" value="#{Bean.selected.From}" pattern="dd.MM.yyyy" mode="popup" showOn="button"> </p:calendar> <p:calendar widgetVar="widgetFromTime"

我使用的是Primefaces 3.1.1。一般来说,JSf是非常新的。 我的表单上有两个日历输入字段:

<p:calendar widgetVar="widgetFromDate" id="ID1" value="#{Bean.selected.From}" pattern="dd.MM.yyyy" mode="popup" showOn="button"> </p:calendar>

<p:calendar widgetVar="widgetFromTime" id="ID2" value="#{Bean.selected.Till}" pattern="HH:mm" timeOnly="true" mode="popup" showOn="button"> </p:calendar>
我真的不知道如何做到这一点。有可能使用一些ajax事件吗? 任何指点都将不胜感激

-BR

基本上就是这样:

<p:calendar ... value="#{bean.date1}" />
<p:calendar ... value="#{bean.date2}" />
<p:commandButton value="submit" action="#{bean.submit}" update="result" />
<h:outputText id="result" value="#{bean.date3}" />
或者,如果您坚持使用标准JSF命令按钮,这具有相同的效果:

<h:commandButton value="submit" action="#{bean.submit}">
    <f:ajax execute="@form" render="result" />
</h:commandButton>

合并的实现细节由您决定,与JSF/PrimeFaces没有任何关系。如果你笨手笨脚的话,只需问一个基本问题


onclick
attribtue至少不适合这种情况,因为在这种特殊情况下,它只提供了一个钩子,用于在提交表单之前执行某些JavaScript函数。你对这个钩子不感兴趣。

对日期部分使用“from”,对时间部分使用“till”是非常奇怪和混乱的。尝试使用合理的变量名使代码自文档化。虽然这回答了我的问题,但如何使用ajax实现相同的逻辑,以便在单击按钮时更新1个以上的结果字段?只需将其客户机ID空间添加到update/render属性中即可。例如,
update=“field1 field2”
。也就是说,我强烈建议寻找一本理智的JSF教程/书籍。这太基本了。标签文档中甚至提到了它。再次感谢!我会的!
public void submit() {
    date3 = mergeSomehow(date1, date2);
}
<h:commandButton value="submit" action="#{bean.submit}">
    <f:ajax execute="@form" render="result" />
</h:commandButton>