You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by alexena <pa...@hotmail.com> on 2014/09/08 15:47:43 UTC
AbstractDefaultAjaxBehavior target does not refresh components
Hi everyone,
I have a problem with AbstractDefaultAjaxBehavior on receiving POST request
sent by client side. Target on respond method does not seem to work - it
process post request but target.add(component) does not refresh a component
in parameter.
What I'm trying to do is process post request witch contains a set of search
fields written by user. Then, I translate a received json into SQL request
and then I update the ListView to show the results of user request.
In my js I have:
$.ajax({
url : callbackUrl2,
type : 'POST',
cache : false,
dataType : 'json',
data: JSON.stringify(valuesArray),
contentType: "application/json; charset=utf-8",
success: function(data) {
console.log(data);
}
});
and on the server side I have:
this.ajaxbeh2 = new AbstractDefaultAjaxBehavior() {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public void renderHead(final Component component,
final IHeaderResponse response) {
super.renderHead(component, response);
response.render(JavaScriptHeaderItem.forScript(
"var callbackUrl2 = '" + this.getCallbackUrl() + "';",
"callbackurl2"));
}
@Override
protected void respond(final AjaxRequestTarget target) {
// some code to process json sent by post request
// this part has no effect on the application
SearchPage.this.pageLabelLabel
.setDefaultModelObject("Search Results");
target.add(SearchPage.this.pageLabelLabel);
target.add(SearchPage.this.pageLabelLabel);
SearchPage.this.patientsListView
.setList(SearchPage.this.patientsList);
target.add(patiensContainer);
target.addChildren(SearchPage.this.patientsListView,
Label.class);
Do you have an idea why target is ignoring in this code?
Thanks for your help,
Alex
--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/AbstractDefaultAjaxBehavior-target-does-not-refresh-components-tp4667379.html
Sent from the Users forum mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
Re: AbstractDefaultAjaxBehavior target does not refresh components
Posted by Martin Grigorov <mg...@apache.org>.
Hi,
You should use Wicket.Ajax.post() instead of jQuery.ajax() to make Ajax
call. Otherwise Wicket won't be able to calculate the baseUrl and all urls
created in this request cycle would be wrong.
Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov
On Mon, Sep 8, 2014 at 4:47 PM, alexena <pa...@hotmail.com> wrote:
> Hi everyone,
>
> I have a problem with AbstractDefaultAjaxBehavior on receiving POST
> request
> sent by client side. Target on respond method does not seem to work - it
> process post request but target.add(component) does not refresh a component
> in parameter.
> What I'm trying to do is process post request witch contains a set of
> search
> fields written by user. Then, I translate a received json into SQL request
> and then I update the ListView to show the results of user request.
> In my js I have:
> $.ajax({
> url : callbackUrl2,
> type : 'POST',
> cache : false,
> dataType : 'json',
> data: JSON.stringify(valuesArray),
> contentType: "application/json; charset=utf-8",
> success: function(data) {
> console.log(data);
> }
> });
>
> and on the server side I have:
> this.ajaxbeh2 = new AbstractDefaultAjaxBehavior() {
>
> /**
> *
> */
> private static final long serialVersionUID = 1L;
>
> @Override
> public void renderHead(final Component component,
> final IHeaderResponse response) {
> super.renderHead(component, response);
>
> response.render(JavaScriptHeaderItem.forScript(
> "var callbackUrl2 = '" +
> this.getCallbackUrl() + "';",
> "callbackurl2"));
>
> }
> @Override
> protected void respond(final AjaxRequestTarget
> target) {
>
> // some code to process json sent by post request
>
> // this part has no effect on the application
>
> SearchPage.this.pageLabelLabel
>
> .setDefaultModelObject("Search Results");
>
> target.add(SearchPage.this.pageLabelLabel);
>
> target.add(SearchPage.this.pageLabelLabel);
>
> SearchPage.this.patientsListView
>
> .setList(SearchPage.this.patientsList);
>
>
> target.add(patiensContainer);
>
> target.addChildren(SearchPage.this.patientsListView,
>
> Label.class);
>
> Do you have an idea why target is ignoring in this code?
>
> Thanks for your help,
> Alex
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/AbstractDefaultAjaxBehavior-target-does-not-refresh-components-tp4667379.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>