Comment appelle les différentes méthodes définies dans une action en struts2?

Je ne suis pas familier avec struts2, mais je sais que la méthode execute() est appelée par défaut dans l'Action lors de l'appel à l'action par son nom. Mais comment faire pour appeler un autre méthode de la même classe d'action?

Dans l'exemple ci-dessous la méthode execute() est appelée lorsque j'ai mis le lien d'url en ajax comme ça: saveJSONDataAction.action grâce à @Action annotation.

Comment l'url ressemble à appeler otherMethod() par ajax?

Classe d'Action:

@ParentPackage("json-default")
@Action(value="getJSONDataAction")
@Result(name="success", type="json")
public class JSONDataAction extends ActionSupport {
    private static final long serialVersionUID = 1L;

    private List<Report> data = new ArrayList<Report>();

    public JSONDataAction(){
        data.add(new Report(1, "Chris", true, "2008-01-01", "orange"));
    }

    public String execute() {
        return SUCCESS;
    }

    public String otherMethod() {
        //do something else ..
        return SUCCESS;
    }

    //getters and setters
}

Appel Ajax:

$.ajax({
    url: "../json/saveJSONDataAction.action",
    data: data,
    dataType: 'json',
    contentType: 'application/json',
    type: 'POST',
    success: function (res) {
      if (res.result === 'ok') {
        $console.text('Data saved');
      }
    }
});

Comment appeler otherMethod() la méthode par ajax?

Je pense qu'il y a une syntaxe avec le point d'exclamation pour cela - quelque chose comme /json/saveJSONDataAction!otherMethod.action.

OriginalL'auteur Roman | 2013-06-01