【发布时间】:2014-05-29 10:18:54
【问题描述】:
我正在使用 Primefaces,我有一个输入字段,其值必须根据输入日期生成,问题是可以通过单击日历或键入来选择日期,如果以第一种方式完成工作正常,但如果通过写入完成,支持 bean 中的 UIInput 的值为 null。我不知道为什么绑定属性不能正常工作或我做错了什么。
<p:calendar id="fechaContable"
value="#{movimientoBean.movimientoCab.fechaContable}" pattern="dd/MM/yyyy" binding="#{movimientoBean.fecha}" required="true"
requiredMessage="Se necesita fechaContable">
<p:ajax event="dateSelect" oncomplete="document.getElementById('anadirForm:numeroAsiento').focus()"/>
</p:calendar>
<p:inputText id="numeroAsiento"
binding="#{movimientoBean.numeroAsiento}" value="#{movimientoBean.movimientoCab.numeroAsiento}" required="false">
<f:ajax event="focus" render=":anadirForm:numeroAsiento" listener="#{movimientoBean.numAsiento}"/>
</p:inputText>
支持 bean
@ManagedBean
@ViewScoped
public class MovimientoBean implements Serializable{
......
private transient UIInput numeroAsiento;
private transient UIInput fecha;
......
public void numAsiento(){
.....
try {
Date date = dateFormat.parse(fecha.getValue().toString());
fechaContable = sdf.format(date);
}catch (ParseException e){
}
}
调用dateSelect时,UIInput fecha的值是对的,但是写入日期时为null。
抱歉可能出现语法或拼写错误
编辑(解决方案):
以下是在有人需要时工作的代码,感谢 Laabidi Raissi 的帮助和信息:
<p:calendar id="fechaContable"
value="#{movimientoBean.movimientoCab.fechaContable}" pattern="dd/MM/yyyy" required="true"
requiredMessage="Se necesita fechaContable">
<p:ajax event="dateSelect" update=":anadirForm:numeroAsiento" listener="#{movimientoBean.numAsiento}" oncomplete="document.getElementById('anadirForm:numeroAsiento').focus()"/>
<p:ajax event="change" update=":anadirForm:numeroAsiento" listener="#{movimientoBean.numAsiento}" oncomplete="document.getElementById('anadirForm:numeroAsiento').focus()"/>
</p:calendar>
<p:inputText id="numeroAsiento"
value="#{movimientoBean.movimientoCab.numeroAsiento}" required="false">
</p:inputText>
【问题讨论】:
标签: java jsf primefaces binding calendar