2017-05-15 1 views
1

XPage가 아닌 Notes 문서에서 DateTime 값을로드 할 때 XPages간에 sessionScope 변수의 값이 손실되는 것 같습니다. 그럼 난 변경XPages sessionScope 변수 및 DateTime 값

sessionScope.put ("datum", getComponent("datum").getValue()); 

: 나는 다음 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")); 

내가 값을 얻을을 null.

문제의 스크린 샷을 첨부했습니다. 다른 필드도 인쇄 했으므로 문제가되는 DateTime 필드 만 볼 수 있습니다. 나는 DateTime 값의 형식이 다름을 주목한다 ... 이것이 문제 일 수 있는가? 당신이 메모리에 저장할 수 있도록

example of the sessionScope variable problem

+0

JavaDates로 NotesDateTime 대신 sessionScope (예 : ndt.toJavaDate())에 저장할 수 있습니까? Session 범위는 직렬화가 가능해야한다는 점에서 Bean과 비슷하게 작동한다고 생각합니다. NotesDateTime 클래스는 직렬화 할 수 없습니다. –

+0

팁 롭에 감사드립니다. 문제가되었습니다. 이제 완벽하게 작동합니다. o) –

+0

우르두 스 환영합니다. –

답변

4

NotesDataTime는, 직렬화하지 않습니다. getComponent("datum").getValue()을 사용하면 NotesDataTime이 아닌 Java Date가 반환됩니다. Java 날짜는 직렬화 가능하므로 작동합니다. NotesDataTime을 Java Date로 변환 해보십시오.

dt.toJavaDate()