我正在将Struts 1应用程序迁移到Struts2,并尽量减少所需的代码更改。
我需要知道如何在Struts2 Action类中访问Action。下面是我当前的代码,当我试图访问ActionForm时,我得到了NPE。
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;
}在这里获得ActionForm的最好方法是什么?
发布于 2014-12-16 10:31:03
应初始化表单(Struts2中的模型)以防止NPE。
private DeptBuidingFormBean form = new DeptBuidingFormBean();ModelDriven操作允许直接从valueStack访问视图层上的模型,即没有model或form前缀。
interceptor应该位于操作的拦截器堆栈上。默认堆栈包含此拦截器。
文档中的:
注意:只有当模型是
null,而不是时,ModelDrivenInterceptor才会将模型推到堆栈中,否则它将被忽略。
在action类中,有一个可以在其中使用的字段。
https://stackoverflow.com/questions/27502393
复制相似问题