Невозможно вызвать URL-адрес ресурса портлета из javascript в liferay6.2

Я использую Liferay Portal 6.2 CE GA3. Мне нужно вызвать собственный метод ресурса портлета из другого файла jsp портлета. Ниже мой код.

<a href ="#" onclick="myfunction('sometext')">Click here </a>

<script>
function myfunction(myVar){

AUI().use('aui-base','aui-io-request','liferay-portlet-url','aui-node',function(A){
	    var url = Liferay.PortletURL.createResourceURL();
	   url.setPortletId("MyCustomPortletId");
	   url.setResourceId('saveUserData');
	   A.io.request(url);
});
}

и мой пользовательский портлет...

public class MyCustomPortlet extends MVCPortlet{
 public void saveUserData(ResourceRequest resourceRequest,
			ResourceResponse resourceResponse) throws IOException,
			PortletException {
		System.out.println("in save UserData");
		
	}
render method----
}

Здесь метод serveResource (в моем случае saveUserData ) не вызывается. Какие-либо предложения ?


person sooribabu    schedule 26.03.2015    source источник


Ответы (1)


Пробовали ли вы вызывать свой метод из своего собственного пользовательского портлета, чтобы убедиться, что ваш метод saveUserData вызывается и не имеет проблем?

Пожалуйста, попробуйте, а затем прочитайте вперед, если это не сработает ;-)

Метод serveResource всегда называется serveResource, а не каким-либо другим именем, например saveUserData, когда вы используете Liferay MVCPortlet.

У вас не может быть нескольких методов serveResource, поскольку у вас могут быть методы действий.

Так что переименуйте свой метод в serveResource() и он должен работать :-)

person Prakash K    schedule 27.03.2015
comment
Пракаш Вы правы. Я изменил имя метода serveResource, а также метод ajax для вызова в сценарии aui: A.io.Request(url) ===›› A.io(url). Он работает нормально. Спасибо - person sooribabu; 27.03.2015