【发布时间】:2014-02-12 11:30:48
【问题描述】:
该问题与 ModelDriven 和 Struts 2.3.16 有关。由于params 拦截器的行为更改为访问传递给操作的参数,因此需要配置acceptParamNames 列表以与ModelDriven 操作一起使用。如果acceptParamNames 列表为空,则默认通过默认模式接受参数。假设我们有一个
ModelDriven 操作:
@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;
}
}
型号:
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/>
在动作execute 方法中,我们得到参数name,它应该由params 拦截器填充并初始化模型属性以在结果中显示它。但问题是未填充参数。如何获取参数name被params拦截器填充,以便动作显示值?
【问题讨论】:
标签: java regex jsp struts2 ognl