Ajax in liferay portlet
Habe ich erstellt ein portlet in liferay(Dies ist mein erstes portlet). In der, die ich verfolgt habe, mvc-Struktur von liferay.
Java-Datei wie folgt:-
package com.liferay.samples;
import java.io.IOException;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletException;
import javax.portlet.PortletPreferences;
//import javax.portlet.GenericPortlet;
import com.liferay.util.bridges.mvc.MVCPortlet;
public class MyGreetingPortlet extends MVCPortlet {
@Override
public void processAction(
ActionRequest actionRequest, ActionResponse actionResponse)
throws IOException, PortletException {
PortletPreferences prefs = actionRequest.getPreferences();
String greetingname = actionRequest.getParameter("greetingname");
String greeting = actionRequest.getParameter("greeting");
if (greeting != null && greetingname != null)
{
prefs.setValue(greetingname, greeting);
prefs.store();
}
//System.out.println("In doView code");
super.processAction(actionRequest, actionResponse);
}
public void fetchdataAction( ActionRequest actionRequest, ActionResponse actionResponse)
throws IOException, PortletException {
System.out.println("In doView code");
//super.fetchdataAction(actionRequest, actionResponse);
}
}
Aber wenn ich Anrufe, fetchdataAction (), die per ajax von der Ansicht.jsp-Datei gibt es nichts.
Blick.jsp-Datei wie folgt :-
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %>
<%@ page import="java.util.*" %>
<%@ page import="javax.portlet.PortletPreferences" %>
<portlet:defineObjects />
<div id="ContentGreeting">
This is the <b>Thired Test</b> portlet.
<%
PortletPreferences prefs = renderRequest.getPreferences();
//forEachPreference
//String em[] = String[2];
//em = prefs.getValues();
Enumeration em = prefs.getNames();
//ArrayList aList = Collections.list(em);
//out.println("value :-"+ aList.get(1));
String[] greeting = new String[3];
int i=0;
while(em.hasMoreElements())
{
String key = (String)em.nextElement();
greeting[i] = (String)prefs.getValue(
key, "Hello! Welcome to our portal.");
//out.println("<br> value :"+greeting);
%>
<p id='id<%= i %>' onclick="ajaxcallTofetchpage();"><%= greeting[i] %></p>
<portlet:renderURL var="editGreetingURL">
<portlet:param name="jspPage" value="/edit.jsp" />
</portlet:renderURL>
<a href="<%= editGreetingURL %>&greetingname=<%= key %>">Edit greeting</a>
<%
i++;
}
%>
</div>
<portlet:renderURL var="addGreetingURL">
<portlet:param name="jspPage" value="/add.jsp" />
</portlet:renderURL>
<p><a href="<%= addGreetingURL %>">Add greeting</a></p>
<portlet:resourceURL var="fetchdataAction">
<portlet:param name="fetchdataAction" value="/view.jsp" />
</portlet:resourceURL>
<script>
//$("#id1").hide("slow");
function ajaxcallTofetchpage()
{
$.ajax({
type: "POST",
url: "<%= fetchdataAction %>",
data: "name=John",
success: function(msg){
alert(msg);
}
});
}
</script>
Wenn Sie sind in der Lage, mir zu helfen, dass wird eine große Hilfe für mich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anstatt eine
fetchDataAction( ActionRequest request, ...)
Methode, die Sie überschreiben müssenserveResource( ResourceRequest request, ...)
.HTH