2012-11-06 16 views
0

可能重複:
How to call specific method of portlet.java class rather then overide serveResource method?如何調用特定的方法,而不是在portlet.java中的serveResource方法從ajax中調用lfieray portlet?

我有打電話在Liferay中ajax的方法,現在一個混亂正在做這樣

這是我的樣本view.jsp的中我只是調用我的portlet.java類的一種方法

<%@ include file="/init.jsp"%> 
<portlet:actionURL name="AddTest" var="add1" /> 
<portlet:resourceURL id="AddTest" var="AddTest"></portlet:resourceURL> 
<html> 
<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> 

<script type="text/javascript"> 
function addToDo(addToDo){ 
    var todo =document.getElementById('toDo').value; 
    $.ajax({ 
     url :addToDo,    
      data: {"todo":todo,"CMD":"addToDo"}, 
      type: "GET", 
      dataType: "text", 
     success: function(data) {    
       $("#toDoList").html(data); 
     } 
    }); 
} 
</script> 
</head> 

<body> 

<portlet:resourceURL var="addToDo" id="addToDo"></portlet:resourceURL> 
<form> 
<input type="text" name="toDo" id="toDo"> 
<button name="Add" type="button" onclick="addToDo('<%=addToDo%>')">Add</button> 
<div id="toDoList"> 


</div> 
</form> 


</body> 
</html> 

現在我有覆蓋的serveResource方法在我portlet.java類

@Override 
    public void serveResource(ResourceRequest request, ResourceResponse response){ 
      if(request.getParameter("CMD").equals("addToDo")){ 

       System.out.println("came here for add"); 
       mediatype userToDo = new mediatypeImpl(); 
       //userToDo.setMediaId(12345); 
       try { 
        userToDo.setPrimaryKey((CounterLocalServiceUtil.increment())); 
        userToDo.setMedianame(request.getParameter("todo")); 
        mediatypeLocalServiceUtil.addmediatype(userToDo); 

       } 
       catch (SystemException e) { 
        e.printStackTrace(); 
       } 

      } 
     } 

現在我知道是從任何AJAX調用它會重定向到這個方法。 但是我怎樣才能從Ajax調用中調用我的porltet.java類的特定方法?是否有嗎?在此阿賈克斯 我只是新的蜜蜂,需要大家有幫助people..if任何人都可以指導我

+1

我不知道它是如何添加兩個問題?我已經嘗試過首先添加問題,但由於網絡問題,因爲它沒有顯示..所以我再次添加了。對於那 –

回答

1

我怎麼能叫從阿賈克斯我porltet.java類的具體方法調用

哪些具體你在這裏提到的方法?

當你執行任何resourceURL時,它只會調用serverResource方法。與執行任何actionURL時相同,它只會調用processAction方法。

+0

雅我想使用動作url ??所以可以我稱之爲動作url?因爲我想在不同的按鈕上使用不同的方法點擊相同的頁面。 –

+0

Bhavik,而不是調用action url爲什麼不執行你在processAction中編寫的代碼/邏輯,當你執行任何actionURL時將調用它。 –

+0

你已經完成了...但如果萬一我想調用,爲什麼我jsut問 –

相關問題