首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从请求范围丢失的Struts ActionForm

从请求范围丢失的Struts ActionForm
EN

Stack Overflow用户
提问于 2015-01-18 01:46:28
回答 1查看 1.6K关注 0票数 0

我接手了一个已有10年历史的Struts1.2应用程序的维护工作。(这是一种过于复杂和专有的方式,无法发布。)

应用程序使用了一些以前存储在会话中的ActionForms。因为最新的变更请求要求我们同时打开多个ActionForms,所以我已经将ActionForm的配置从会话范围更改为使用struts-config请求作用域。

此更改破坏了在ActionForm对象中查找PageContext的一些自定义标记代码。(它可能会破坏其他由于此错误而无法测试的功能。)

代码正在寻找带有ActionForm的TagUtils.getRealValueFromBean

我尝试在这个调用中调整参数,以指定请求范围,并尝试查看请求对象的属性,但是ActionForm不存在!JSP中的Java代码在请求对象中没有显示这样的属性。(我听说刷新事件可以创建一个新的ActionForm,但是在请求对象中没有任何ActionForm。然而,在从数据库检索对象的Action的底部,请求对象中存在ActionForm。

我创建了一个具有ActionForm的小型测试应用程序,可以在任何会话或请求范围中进行配置,但是从请求中检索ActionForm很好!

知道在哪里/如何追踪ActionForm是如何受到打击的吗?

或者如何在保持ActionForm的同时支持多个scope=session实例

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-18 04:22:34

您可以尝试以下方法:

假设scope="session"Foo是我的域类:

代码语言:javascript
复制
public class Foo {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

然后:

  • ActionForm中: 私有静态地图=新HashMap();公共Foo getFoo(字符串页){ if (!map.containsKey(页)){map.put(页,新Foo());}返回( Foo ) map.get(页);} public void setFoo(字符串页,foo foo) {map.put(页,foo)};
  • 输入JSP
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28006355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档