Übergeben von Parametern an Action über ModelDriven in Struts 2

Die Ausgabe hängt mit dem zusammenModelDriven und Streben 2.3.16. Da das Verhalten derparams Der Interceptor wurde geändert, um auf die Parameter zuzugreifen, die an die Aktion übergeben wurden, und muss konfiguriert werdenacceptParamNames Liste zur Verwendung mitModelDriven Aktion. WennacceptParamNames Die Liste ist leer. Sie funktioniert standardmäßig, wenn Parameter über das Standardmuster akzeptiert werden. Angenommen, wir haben eine

ModelDriven Aktion:

@Namespace("/modelDriven")
public class ModelDrivenAction extends ActionSupport implements ModelDriven {

  private Gangster model = new Gangster();

  private String name; //getter and setter

  public Object getModel() {
    return model;
  }

  @Actions({
    @Action(value="modelDriven", results=@Result(location = "/modelDriven/modelDriven.jsp")),
    @Action(value="modelDrivenResult", results=@Result(location = "/modelDriven/modelDrivenResult.jsp"))
  })
  public String execute() throws Exception {
    model.setName(name);
    return SUCCESS;
  }
}

das Model:

public class Gangster {
  private String name; //getter and setter
}

modelDriven.jsp:

<s:form id="modelDrivenForm" action="modelDrivenResult" method="POST" namespace="/modelDriven">    
    <s:textfield
        label="Gangster Name"
        name="[1].name"/>
    <sj:submit cssClass="btn btn-primary" executeScripts="true" targets="div1"/>
</s:form>

<div id="div1"/>

modelDrivenResult.jsp:

<s:label
    label="Gangster Name"
    name="name"/><br/>

In der Aktionexecute Methode, die wir Parameter bekommenname das sollte von der bevölkert werdenparams Interceptor und Initialisierung der Modelleigenschaft, um sie im Ergebnis anzuzeigen. Das Problem ist jedoch, dass der Parameter nicht gefüllt ist. Wie bekomme ich einen Parameter?name Wird es vom params-Interceptor aufgefüllt, sodass die Aktion den Wert anzeigen kann?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage