Ich habe ein Problem mit meinem Portlet und ich weiß nicht genau, wie man es löst. Mein Portlet fügt Informationen aus der Datenbank von liferay hinzu oder ruft diese ab, indem ein Name in zwei Textfelder eingefügt wird. Nach dem Absenden-Button drücken, sehe ich die Antwort vom Server, eine JSON-Antwort wie folgt aus:Anfragen mit AJAX in einem Portlet (Liferay)
{"id":301,"name":"Pepo"}
Wenn ein Benutzer korrekt eingesetzt oder wenn die Suche ein gutes Ergebnis führt. Ich muss zurück in den Browser gehen, um das Portal wieder zu sehen.
Wie kann ich AJAX verwenden, um die folgende URL dynamisch vom Portlet an den Server zu übergeben, ohne die Seite danach zu aktualisieren?
http: // localhost: 8080/c/portal/json_service serviceClassName = com.liferay.test.service.TrabajadorServiceUtil & serviceMethodName = findByName & servletContextName = TrabajadorPlugin-Portlet & serviceParameters = [param1] & param1 = NameInsertedByUser
Jetzt bin ich mit dem <form>
Tag wie folgt:
<%
//Shows "New Employee" in the text field when portlet is rendered, or gets the user input and pass it as a param to the URL
PortletPreferences prefs = renderRequest.getPreferences();
String employee = (String)prefs.getValue("name", "New Employee");
%>
<form id="postForm" method="post" action="http://localhost:8080/c/portal/json_service">
<input name="serviceClassName" type="hidden" value="com.liferay.test.service.TrabajadorServiceUtil" />
<input name="serviceMethodName" type="hidden" value="create" />
<input name="servletContextName" type="hidden" value="TrabajadorPlugin-portlet" />
<input name="serviceParameters" type="hidden" value="[param]" />
<input name="param" type="text" value="<%=employee%>" />
<input type="submit" value="Submit"/>
</form>
Ich verstehe, wie AJAX funktioniert, aber ich brauche etwas Hilfe, um meine Funktion zu erstellen, um zu erreichen, dass die URL für GET
und POST
Anforderungen korrekt an den Server gesendet wird. Dies ist mein erster Versuch mit AJAX.
Vielen Dank, hoffe jemand versteht mein Problem und könnte mir helfen.
Hallo, danke für deine Antwort. Das Problem ist, dass ich ja die GET- und POST-Anfrage in JSON wie folgt sende und empfange: {"id": 301, "name": "Pepo"} Also ja, ich muss AJAX benutzen, aber ich tu 'nicht Ich weiß wie. MY URL ist wie folgt: http: // localhost: 8080/c/portal/json_service? ServiceClassName = com.liferay.test.service.TrabajadorServiceUtil & serviceMethodName = findenByName & servletContextName = TrabajadorPlugin-portlet & serviceParameters = [param1] & param1 = Pepo – agapitocandemor
Wo Param1 von eingefügt wird der Benutzer in einem Textfeld. Ich muss es nur am Ende der URL hinzufügen und es mit AJAX senden, so dass Sie diese leere Seite nicht sehen und Sie den Browser nicht manuell aktualisieren müssen, um zum Portal zurückzukehren. Hast du einen Vorschlag, das zu tun? Vielen Dank, dies ist mein erstes Mal mit AJAX und ich bin ein bisschen verloren. – agapitocandemor
Bitte sehen Sie meine Bearbeitung, ich habe meine Frage aktualisiert. – agapitocandemor