Ich versuche bei jedem Tastendruck diese einfache Eingabe passieren, um ein Ajax-Handler, und dann mit einem Controller:Ausgabe auf Ajax-Request (Liferay)
<portlet:resourceURL var="resourceURL">
</portlet:resourceURL>
<form id="busq" method="POST">
<input id="busqueda" name="param1" type="text" onkeypress="buscar()"/>
</form>
Das ist mein Ajax-Aufruf. Es scheint ok zu arbeiten: es die Parameter in der POST-Anfrage sendet, und ruft einige Daten vom Server:
var busq = document.getElementById("busqueda").value;
console.log("Searching for: "+busq);
AUI().use('aui-io-request', function(A){
A.io.request('${resourceURL}', {
method: 'post',
data: {
parametro: busq
},
on: {
success: function() {
console.log("RESULT: "+this.get('responseData'));
},
error: function(){
alert("Error");
}
}
});
});
Dies ist, wie ich es in der Steuerung gelesen. Er ruft zur Zeit eine leere Zeichenfolge:
String datos = ParamUtil.get(req, "param2", StringPool.BLANK);
Ich habe versucht, alle die folgenden:
- Namespaces verwenden
- Einstellung auf false (aktueller Stand).
- Variablennamen ändern.
- Verwenden von ParamUtil.getString().
- etc ...
Nichts funktionierte. Ich möchte den Eingabewert in meinem Controller bekommen, damit ich eine Suche filtern kann, aber es kommt nie dorthin (so bekomme ich alle Abfrage-Informationen ohne Filterung).
Irgendeine Idee, was hier falsch ist?
Sieht aus wie der Parametername, den Sie senden, ist parametro. Sie können die Anfrage in Ihrem Controller überprüfen und sehen, was die Parameter sind, die helfen könnten –
Es wäre gut, wenn Sie Code für alle Optionen, die Sie versucht haben, zur Verfügung stellen? –