Ich erstellte ein berechnetes Menü in XPages mit gerenderten Regeln basierend auf Benutzerrollen. Die Werte meines Menüs werden aus einer Ansicht in einem berechneten Feld berechnet. Das ist mein Menü Code:Dynamische Render-Formel in XPages Menü
<div id='cssmenu'>
<ul><li class='active has-sub'>
<a href='#'>Title1</a>
<ul>
<xp:text escape="true" disableTheme="true" contentType="html">
<xp:this.value>
<![CDATA[#{javascript:var arr= @DbColumn(@DbName(), "vwMenu", 4);
arr.join("");}]]>
</xp:this.value>
</xp:text>
</ul>
</li>
</ul>
</div>
Der Wert eines Elements aus meinem Array zum Beispiel gibt diesen Code:
<li class='has-sub'>
<a href=https://mylink.com>Link1</a>
<xp:panel>
<xp:this.rendered>
<![CDATA[${javascript:context.getUser().getRoles().contains('[USER1]')}]]>
</xp:this.rendered>
<ul>
<li><a href=https://MyPage.com>Link2</a></li>
</ul>
</xp:panel>
</li>
Das Menü fein erscheint so der HTML-Code ist ok.but des XML-Teil bezüglich der Sichtbarkeit auf link2 nicht. Link 2 ist nicht sichtbar, unabhängig von der Rolle des verbundenen Benutzers. Ich denke, es ist ein Problem, das passiert ist, wo ich XML-Code in JavaScript-Code verwende. Vielleicht weil Der Inhaltstyp meines berechneten Feldes ist HTML und mein Code zum Rendern ist in XML.
Das Menü funktioniert mit oder ohne Apostroph in der URL. Es funktioniert nicht nur, wenn ich eine Rendering-Regel in Abhängigkeit von einer Benutzerrolle einstelle. – user3082877