留言板

Creare un renderURL da JS

thumbnail
Marco Azzalini,修改在6 年前。

Creare un renderURL da JS

Regular Member 帖子: 146 加入日期: 14-11-18 最近的帖子
Ciao a tutti, ho uno strano problema con la generazione di un render URL da Javascript.
Quello che devo fare è generare in modo dinamico lo stesso url che viene prodotto dal solito tag liferay-portlet:renderURL e che mi funziona perfettamente, ovvero questo:
<liferay-portlet:renderurl var="filteredResultsURL" windowstate="<%=LiferayWindowState.EXCLUSIVE.toString() %>">
				<liferay-portlet:param name="mvcPath" value="/html/configure/filtered_results.jsp" />
		</liferay-portlet:renderurl>


Siccome vorrei aggiornare un div in pagina con i risultati della ricerca, tramite una funzioncina JS genero lo stesso URL (tramite la chiamata Liferay.PortletURL.createRenderURL) e poi leggo il risultato dell'invocazione tramite l'oggetto AUI.io.request ma mi sono accorto che non funziona emoticon perché vedo che mi genera sempre degli url di questo tipo, che sono chiaramente sbagliati:
 /it/c/portal/layout?p_p_id=2_WAR_nosdocumentwidgetportlet&amp;p_p_lifecycle=0...


che ovviamente non mi danno nessun risultato, anziché come quello generato dal tag che invece è:

http://localhost:8083/it/web/guest/20?p_p_id=2_WAR_NOSDocumentwidgetportlet…

qualcuno sa dirmi dove sto sbagliando??

Di seguito trovate la mia funzione completa:
Liferay.provide(
	window,
	'<portlet:namespace />doSearch',
	function() {
		var A = AUI();
		var titolo = A.one('#<portlet:namespace />&lt;%=WebKeys.DOC_TITLE %&gt;').attr('value');
		var codice = A.one('#<portlet:namespace />&lt;%=WebKeys.DOC_CODE %&gt;').attr('value');
		
		var url = Liferay.PortletURL.createRenderURL();
		url.setPortletId('&lt;%=PortletKeys.CONFIGURE_WIDGET %&gt;');
		url.setWindowState('&lt;%=LiferayWindowState.EXCLUSIVE.toString() %&gt;');
		url.setParameter('<portlet:namespace />mvcPath', '/html/configure/filtered_results.jsp');
		url.setParameter('&lt;%= WebKeys.DOC_TITLE%&gt;', titolo);
		url.setParameter('&lt;%= WebKeys.DOC_CODE%&gt;', codice);
		
		AUI().one('#searchResultsDiv').html('<div class="loading-animation"></div>');
		
		A.io.request(
			url.toString(),
			{
				dataType: 'text/html',
				on: {
					failure: function() {
					  alert("ERRORE !!!")
					},
					
					success: function(event, id, obj) {
					  var instance = this;
					  var message = instance.get('responseData');
					  AUI().one('#searchResultsDiv').html(message);
					}
				}
			}
		); //END of io Request
	},
	['aui-io', 'liferay-util-window', 'aui-base', 'liferay-portlet-url']
);  //End of doSearch


ciao e grazie in aticipo a tutti
Marco