Ich verwende die folgenden:Staats Fehler mit einer Dialogsteuerung zeigt
Domino Release 9.0.1FP4HF71,
ExtensionLibrary v16,
ApplicationLayout control with 'bootstrapResponsiveConfiguration',
theme: 'Bootstrap3.2.0_flat'
In der Konfiguration Markup Anwendungs Layout-Kontrolle habe ich ein basicLeafNode für Login-Dialog-Fenster.
<xe:this.bannerUtilityLinks>
<xe:basicLeafNode label="Login" submitValue="Login">
<xe:this.onClick><![CDATA[XSP.openDialog("#{id:dialogLogin}");]]></xe:this.onClick>
</xe:basicLeafNode>
</xe:this.bannerUtilityLinks>
Hier ist Markup mit Eigenschaften für meine loginDialog:
<xe:dialog id="dialogLogin" title="Sign In" preventCache="true"
preload="true" keepComponents="false" partialRefresh="true"
extractContent="true">
...
</xe:dialog>
Meistens, wenn ich Sie auf den Link Login
ich dieses Dialogfenster bekam:
Es funktioniert gut. Das Problem tritt auf, wenn ich diese Seite später öffne, nachdem das Sitzungstimeout abläuft (oder etwas anderes schief geht). Zuerst, Anwendung Layout-Steuerelement rendert Utility-Links-Liste für "zuvor angemeldete" Benutzer (mit Benutzername und Logout
) und dann "aktualisiert" sich selbst mit Links für anonyme Benutzer (Login
und Sign up
).
Wenn ich Login
klicken jetzt dann werde ich nur einen leeren Dialog mit Kopf erhalten:
login dialog with empty content part
und eine folgende Meldung in Serverkonsole:
HTTP JVM: WARNING: CLFAD####W: State data not available for /index because no control tree was found in the cache.
Ich habe versucht zu Ändern Sie die Eigenschaften für das dialogLogin-Steuerelement mit anderen Werten, ändern Sie die viewState
-Eigenschaft der Seite in nostate
und vergrößern Sie und xsp.session.timeout
ordnungsgemäß Bindungen. Aber es sieht so aus, als hätte ich hier keinen Einfluss.
Nach der vollständigen Aktualisierung der Seite funktioniert mein Dialog wieder gut.
Irgendwelche Vorschläge.
Vielen Dank im Voraus.
Wie erkennen wir, dass die HTTP-Sitzung abgelaufen ist? Gibt es eine Möglichkeit, dass, wenn die HTTP-Sitzung abgelaufen ist, informieren Sie den Benutzer, um sich erneut anzumelden oder um sie auf die Anmeldeseite umzuleiten. –
Paul, gibt es eine Möglichkeit, Dialog in einem einzigen Aufruf neu zu erstellen, ohne die Seite aktualisieren zu müssen? Vielleicht kann es in einer Phase des JSF-Lebenszyklus getan werden, aber ich bin nicht genug damit erfahren. Können Sie sagen, wer die Meldung "Statusdaten nicht verfügbar" ausgibt? Ist es Code der Anwendungslayoutsteuerung? –
@ PrashantArkal nicht mit XPages, es sei denn, die Anwendung ist anonymer Zugriff.Andernfalls wird bei jedem Aufruf zur Authentifizierung über HTTP aufgefordert, auf die XPage zuzugreifen, bevor ein Komponentenbaum für diese XPage erstellt werden kann. –