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