...
For example in your panel:
| Code Block |
|---|
final AbstractDefaultAjaxBehavior behave = new AbstractDefaultAjaxBehavior() {
protected void respond(final AjaxRequestTarget target) {
target.add(new Label("foo", "Yeah I was just called from Javascript!"));
}
};
add(behave);
|
...
| Code Block |
|---|
|
<script type="text/javascript" wicket:id="myScript">/* script will be rendered here */</script>
|
| Code Block |
|---|
|
Label myScript = new Label("myScript", "callWicket();");
myScript.setEscapeModelStrings(false); // do not HTML escape JavaScript code
add(myScript);
|
...
| Code Block |
|---|
|
String componentMarkupId = component.getMarkupId();
String callbackUrl = behave.getCallbackUrl().toString();
Map<String, Object> map = new HashMap<>();
map.put( "callbackUrl", callbackUrl );
map.put( "args", "Your Arguments Here" );
map.put( "componentMarkupId", componentMarkupId );
PackageTextTemplate ptt = new PackageTextTemplate( clazz, "resources/main.js" );
OnDomReadyHeaderItem onDomReadyHeaderItem = OnDomReadyHeaderItem.forScript( ptt.asString( map ) );
|
| Code Block |
|---|
| javascript |
|---|
| javascript |
|---|
| title | JavaScript - Fragment of resources/main.js |
|---|
|
var wcall = Wicket.Ajax.get({ u: '${callbackUrl}' + '${args}' });
|
...
| Code Block |
|---|
| javascript |
|---|
| javascript |
|---|
| title | JavaScript |
|---|
|
function callWicket() {
var wcall = wicketAjaxGet('$url$' + '$args$', function() { }, function() { });
}
|
...
Ok, this is actually quite ugly, but you get the optional arguments in the response method like this:
| Code Block |
|---|
|
IRequestParameters params = RequestCycle.get().getRequest().getRequestParameters();
|
Or to retrieve a single parameter by its key:
| Code Block |
|---|
|
String paramFoo = RequestCycle.get().getRequest().getRequestParameters().getParameterValue("foo");
|