XPages sessionScope变量和DateTime值

XPages sessionScope变量和DateTime值,datetime,xpages,xpages-ssjs,Datetime,Xpages,Xpages Ssjs,当我从Notes文档(而不是从XPage)加载DateTime值时,似乎正在丢失XPage之间sessionScope变量的值。以下是我的工作: 我有一个编辑框,其中的内容设置为仅键入日期: <xp:inputText value="#{document1.datum}" id="datum" defaultValue="#{javascript:@Now()}" required="true"> <xp:this.converter> <xp:conve

当我从Notes文档(而不是从XPage)加载DateTime值时,似乎正在丢失XPage之间sessionScope变量的值。以下是我的工作:

我有一个编辑框,其中的内容设置为仅键入日期:

<xp:inputText value="#{document1.datum}" id="datum" defaultValue="#{javascript:@Now()}" required="true">
<xp:this.converter>
     <xp:convertDateTime type="date"></xp:convertDateTime>
</xp:this.converter>
<xp:dateTimeHelper></xp:dateTimeHelper>
</xp:inputText>
然后,我通过执行以下操作来更改XPages:

var extCont = facesContext.getExternalContext();
extCont.redirect("xpNextPage.xsp")
然后我做一个sessionScope.get:

print (sessionScope.get ("datum"));
内容也很好

如果我对已加载的文档执行相同操作:

var date:NotesDateTime = doc.getItemValueDateTimeArray("datum");
var start:NotesDateTime = doc.getItemValueDateTimeArray("von");
var dt:NotesDateTime = session.createDateTime (date [0].getDateOnly() + " " + start [0].getTimeOnly());
sessionScope.put ("datum", dt);
然后切换到下一页并尝试使用以下内容加载:

print (sessionScope.get ("datum"));
我得到一个空值

我附上了一个问题的屏幕截图(我还打印了其他字段,以便您可以看到只有DateTime字段才是问题所在)。我注意到DateTime值的格式不同。。。这可能是问题所在吗


notesdatime不可序列化,因此无法将其存储在内存中。当您使用
getComponent(“datum”).getValue()
时,它将返回Java日期而不是NotesDatime。Java日期是可序列化的,因此它可以正常工作。 尝试将NotesDatime转换为Java日期

dt.toJavaDate()

NotesDatime不可序列化,因此无法将其存储在内存中。当您使用
getComponent(“datum”).getValue()
时,它将返回Java日期而不是NotesDatime。Java日期是可序列化的,因此它可以正常工作。 尝试将NotesDatime转换为Java日期

dt.toJavaDate()

您是否可以尝试将它们作为Java日期存储到sessionScope(例如ndt.toJavaDate())而不是NotesDateTime。我认为会话作用域的工作原理与bean类似,因为它需要可序列化。NotesDateTime类不可序列化。感谢您的提示Rob-这就是问题所在-现在它工作得很好:o)不客气,Ursus。能否尝试将它们作为Java日期存储到sessionScope(例如ndt.toJavaDate())而不是NotesDateTime。我认为会话作用域的工作原理与bean类似,因为它需要可序列化。NotesDateTime类不可序列化。感谢您的提示Rob-这就是问题所在-现在它工作得很好:o)不客气,Ursus。