gpt4 book ai didi

java - 如何在 Struts 2 中获取 ActionForm?

转载 作者:搜寻专家 更新时间:2023-11-01 03:37:13 24 4
gpt4 key购买 nike

我正在将一个 Struts 1 应用程序迁移到 Struts2 并尝试尽量减少所需的代码更改。

我需要知道如何访问 Struts2 Action 类中的 ActionForm。下面是我当前的代码,我在尝试访问 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 的最佳方法是什么?

最佳答案

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

private DeptBuidingFormBean form = new DeptBuidingFormBean();

ModelDriven 操作允许直接从 valueStack 访问 View 层和操作中的模型,即没有 model形式前缀。

modelDriven interceptor应该在 Action 的拦截器堆栈上。默认堆栈包含此拦截器。

来自文档:

Note: The ModelDrivenInterceptor will only push the model into the stack when the model is not null, else it will be ignored.

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

关于java - 如何在 Struts 2 中获取 ActionForm?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27502393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com