Ü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?