XPages中的间隔计时器在刷新时丢失日期值

XPages中的间隔计时器在刷新时丢失日期值,xpages,Xpages,嗨,我有一个“邮件输入”应用程序,并在“墙板”上显示排队等候的电子邮件。我希望使用包含邮件数据的repeat的部分刷新,每x秒刷新一次显示。这可以正常工作,除了“我对日期字段有问题”之外,该字段在第一次刷新之前正确显示,当它转换为默认值1970年1月1日。我使用创建日期计算邮件等待的分钟数-此处未显示。 任何帮助都将不胜感激 非常感谢 在XPage上,我有: <xp:scriptBlock id="scriptBlockRefresh"> <xp:this.value>

嗨,我有一个“邮件输入”应用程序,并在“墙板”上显示排队等候的电子邮件。我希望使用包含邮件数据的repeat的部分刷新,每x秒刷新一次显示。这可以正常工作,除了“我对日期字段有问题”之外,该字段在第一次刷新之前正确显示,当它转换为默认值1970年1月1日。我使用创建日期计算邮件等待的分钟数-此处未显示。 任何帮助都将不胜感激

非常感谢

在XPage上,我有:

<xp:scriptBlock
id="scriptBlockRefresh">
<xp:this.value>
        <![CDATA[
            setInterval(function() {
                XSP.partialRefreshGet("#{id:mailInPanel}", {})
            }, 5 * 1000)
        ]]>
</xp:this.value>
</xp:scriptBlock>

<xp:this.beforePageLoad><![CDATA[#{javascript:miniWallboardBean.loadOutstandingMailin();}]]></xp:this.beforePageLoad>

<xp:panel id="mailInPanel">
<xp:repeat id="repeat1" rows="30" value="#{miniWallboardBean.outstandingMailin}" var="rowData">
<xp:text escape="true" id="computedField1" value="#{rowData.from}"></xp:text>
<xp:text escape="true" id="computedField2" value="#{rowData.subject}"></xp:text>
<xp:text escape="true" id="computedField5" value="#{javascript:rowData.getCreatedDate().toJavaDate()}"></xp:text>           
</xp:repeat>
</xp:panel>
我从业务逻辑中的视图列获取数据:

public List <Mailin> getOutstandingMailin(){    
    ArrayList<Mailin> outstandingMailin = new ArrayList<Mailin>();
    try {
        ViewEntryCollection entries = NCLWallboardUtil.getAllEntries("Server","DB","View"); //Method to get a collection

        if (entries !=null) {
            ViewEntry entry = entries.getFirstEntry();
            while (entry !=null){
            Mailin mailin = loadMailInFromEntry(entry);
            outstandingMailin.add(mailin);
            ViewEntry oldEntry = entry;
            entry = entries.getNextEntry(entry);
            oldEntry.recycle();
        }
            entries.recycle();
        }
            } catch (NotesException e) {
            e.printStackTrace(); 
        }
    return outstandingMailin;
}


private Mailin loadMailInFromEntry(ViewEntry entry) throws NotesException{
Mailin mailin = new Mailin();
mailin.setFrom((String) entry.getColumnValues().get(0));
mailin.setSubject((String) entry.getColumnValues().get(3));
mailin.setOwner((String) entry.getColumnValues().get(5));
mailin.setCreatedDate((DateTime) entry.getColumnValues().get(4));
return mailin;
public List getOutstandingMailin(){
ArrayList outstandingMailin=新的ArrayList();
试一试{
ViewEntryCollection entries=NCLWallboardUtil.getAllEntries(“服务器”、“数据库”、“视图”);//获取集合的方法
if(条目!=null){
ViewEntry=entries.getFirstEntry();
while(条目!=null){
Mailin Mailin=loadmailinforemtry(条目);
未结清的mailin.add(mailin);
ViewEntry-oldEntry=条目;
entry=entries.getnextery(entry);
oldEntry.recycle();
}
entries.recycle();
}
}捕获(注e){
e、 printStackTrace();
}
返回未付款的邮件;
}
private Mailin LoadMailInfo(查看条目)引发NotesException{
Mailin Mailin=新Mailin();
mailin.setFrom((String)entry.getColumnValues().get(0));
mailin.setSubject((String)entry.getColumnValues().get(3));
setOwner((字符串)entry.getColumnValues().get(5));
setCreatedDate((DateTime)entry.getColumnValues().get(4));
返回mailin;
}

在我的会话范围bean中,我有:

   public class MiniWallboardBean implements Serializable{

private static final long serialVersionUID = 1L;
private List <Mailin> outstandingMailin;
private MiniWallboard miniWB;   

public MiniWallboardBean(){
miniWB = new MiniWallboard();}

public void loadOutstandingMailin(){
    try{
    setOutstandingMailin(miniWB.getOutstandingMailin());
    }catch (Exception e){
        e.printStackTrace();
    }
    }


public void setOutstandingMailin(List <Mailin> outstandingMailil{
 this.outstandingMailin = outstandingMailin;}
public List <Mailin> getOutstandingMailin() {
  return outstandingMailin;}
公共类MiniWallboardBean实现可序列化{
私有静态最终长serialVersionUID=1L;
私人名单未完成的邮件;
私人小型墙板;
公共迷你墙板bean(){
miniWB=新的迷你墙板();}
public void loadOutstandingMailin(){
试一试{
setOutstandingMailin(miniWB.getOutstandingMailin());
}捕获(例外e){
e、 printStackTrace();
}
}
public void setOutstandingMailin(列出outstandingMailil{
this.outstandingMailin=outstandingMailin;}
公共列表getOutstandingMailin(){
返回未完成的mailin;}

日期时间与其他Domino对象一样,是不可序列化的。因此,一旦初始页面加载完成并回收会话,您的日期时间也将被回收


将值存储为Java日期,这样就可以了。

日期时间与其他Domino对象一样,是不可序列化的。因此,一旦初始页面加载完成,会话被回收,日期时间也将被回收

将这些值存储为Java日期,这样就可以了

   public class MiniWallboardBean implements Serializable{

private static final long serialVersionUID = 1L;
private List <Mailin> outstandingMailin;
private MiniWallboard miniWB;   

public MiniWallboardBean(){
miniWB = new MiniWallboard();}

public void loadOutstandingMailin(){
    try{
    setOutstandingMailin(miniWB.getOutstandingMailin());
    }catch (Exception e){
        e.printStackTrace();
    }
    }


public void setOutstandingMailin(List <Mailin> outstandingMailil{
 this.outstandingMailin = outstandingMailin;}
public List <Mailin> getOutstandingMailin() {
  return outstandingMailin;}