如何在 Struts 2 中获取 ActionForm?

Rav*_*pta 5 java model-driven struts2 nullpointerexception actionform

我正在将一个 Struts 1 应用程序迁移到 Struts2 并尝试最小化所需的代码更改。

我需要知道如何访问ActionFormStruts2Action类中的 。下面是我当前的代码,我在尝试访问ActionForm.

Public class DeptBuildingNewAction extends ActionSupport 
implements ServletRequestAware, ServletResponseAware,  ModelDriven<DeptBuidingFormBean> {

private HttpServletRequest request;
private HttpServletResponse response;
private DeptBuidingFormBean form;

public void setServletRequest(HttpServletRequest httpServletRequest) {
    this.request = httpServletRequest;
}

public void setServletResponse(HttpServletResponse httpServletResponse) {
    log.debug("Inside setServletResponse");
    this.response = httpServletResponse;
}

public DeptBuidingFormBean getModel() {
    log.debug("Inside getForm");
    return form;
}

public void setModel(DeptBuidingFormBean form) {
    log.debug("Inside setForm");
    this.form = form;
}
Run Code Online (Sandbox Code Playgroud)

到达ActionForm这里的最佳方式是什么?

Rom*_*n C 1

表单(Struts2中的模型)应该被初始化以防止NPE。

private DeptBuidingFormBean form = new DeptBuidingFormBean();
Run Code Online (Sandbox Code Playgroud)

ModelDriven操作允许直接从 访问视图层和操作中的模型valueStack,即不带modelform前缀。

拦截modelDriven应该位于操作的拦截器堆栈上。默认堆栈包含此拦截器。

来自文档:

注意:ModelDrivenInterceptor只有当模型不是 时null才会将模型压入堆栈,否则将被忽略。

在操作类中,您有一个可以在内部使用的字段。