我正在使用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>
支持豆
@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。
对不起可能的语法或拼写错误
EDIT(溶液):
以下是有人需要的代码,感谢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>
答案 0 :(得分:0)
您应该为change
添加ajax事件:
<p:ajax event="change" oncomplete="document.getElementById('anadirForm:numeroAsiento').focus()"/>
与此问题无关,我认为混合p:ajax
和f:ajax
并不是一个好主意。
而且,除非你有充分的理由,否则你不应该在托管bean中使用UIComponent
请参阅this answer by BalusC for more explanations