Target: Command method's parameter

Purpose: Tell binder to retrieve this parameter with specified key from binding argument on the ZUL.

The annotation is applied to command method's parameter. It declares that the applied parameter should come from binding argument written on the ZUL with the specified key.

Since 8.0.0

If using Client Binding to trigger a command, this annotation would convert JSON data into an appropriate object automatically.

Since 9.5.0

The value can be omitted if name is the same as the annotated parameter.

@BindingParam String keyString


Command binding that pass parameters*

<listbox model="@load(vm.items)" selectedItem="@bind(vm.selected)" hflex="true" height="300px">
        <listheader label="Name"/>
        <listheader label="Price" align="center"/>
        <listheader label="Quantity" align="center"/>
    <template name="model" var="item">
        <listitem onMouseOver="@command('popupMessage', myKey='myValue', content=item.description)">
            <listcell label="@bind(item.name)"/>
            <listcell label="@bind(item.price)"/>
            <listcell label="@bind(item.quantity)"/>

Command method in ViewModel with binding parameter

public void popupMessage(@BindingParam("myKey") String target, @BindingParam String content) {
    // method body
  • The target's value is “myValue”, and content's is object item's description property.

Since 8.0.0

Using client binding to trigger a command

zkbind.$(someone).command('dataChange', {data:{title: "myData"}});
  • The above code will send JSON data to the command function "dataChange"; this can be automatically converted into an appropriate object using the BindingParam.
public static class DataObject {
    private String title;
    public void setTitle(String title) {
        this.title = title;
    public String getTitle() {return title;}

public void dataChange(@BindingParam DataObject data) {
    // do something here.

For more information, please visit ZK Configuration Reference.