Ich benötige eine Ressourcenberechtigung unter Verwendung des Portlet-Namens.
Ich werde den Namen des Portlets nicht die ID haben.
Der Name der Ressourcenberechtigung für ein Portlet ist die ID dieses Portlets. Ich habe die Portlet-Tabelle überprüft, sie enthält nur die ID und andere Informationen. Wo werden die anderen Attribute des Portlets gespeichert?.
Gibt es eine Möglichkeit, die Portlet-ID mithilfe des Portlet-Namens zu erhalten? Ich habe eine Workaround, um alle Portlets zu bekommen und zu vergleichen, aber wenn ich direkt die Portlet-ID mit dem Portlet-Namen bekommen kann, wird es hilfreich sein.
Es ist dringend, wenn jemand weiß, dass pls antworten wird, wird es eine große Hilfe sein.
Vielen Dank im Voraus
Wenn Sie genau sehen, wie die Portlet-ID basierend auf dem Portlet-Namen generiert wird, erhalten Sie die Antwort.
Es ist ein konstantes Muster, dem gefolgt wird, so dass Sie die Portlet-ID wie liveray konstruieren können, wenn Sie den Namen haben. Liferay konstruiert auch die ID mit Hilfe des Portlet-Namens.
Muster der Portlet-ID: <portletname in xml>_WAR_<servlet context name i.e. the war file without any special characters such as the hyphen>
Zum Beispiel:
Wenn Ihr Portlet-Name MyWork
in portlet.xml
definiert ist und die generierte Datei im Ordner webapps
(wenn Sie Tomcat verwenden) ist MyWork-portlet
, dann lautet die resultierende ID MyWork_WAR_MyWorkportlet
.
Wenn Sie nun den Quellcode von liveray haben, können Sie sich PortletLocalServiceImpl
private _readPortletXML
Methode.
Bearbeiten:
Wenn Sie die Portlets auf einer bestimmten Seite finden möchten (in friendly-url
der Seite), finden Sie diese Antwort hilfreich.