java - Struts session 表单 bean 不保留状态

标签 java forms session struts struts-action

我正在使用 Struts 1.3 创建一个类似向导的界面,该界面由 3 个 jsp 页面和 3 个 Struts 操作组成。流程如下: page1>action1 ->page2>action2 -> page3>action3

我使用 session 表单 bean(具有 session 范围的操作表单)在请求之间共享数据。我遇到的问题是我在 page2 中提交的数据在操作 2 中可用,但在操作 3 中不可用。我怀疑可能是我在 page3 上没有表格来保存这些数据,或者因为我调用action3 通过 jQuery post 方法而不是常规表单提交,但我真的不确定。

我已经在互联网上搜索了将近一天,但仍然一无所获。谁能提供一些帮助。非常感谢。

最佳答案

每个请求都会调用表单上的 reset() 方法,因此您正在丢失状态。您可以通过编程方式控制它。

public class MyForm extends ActionForm {
    boolean reset = true;
    private String[] checkboxes = {};

    @Override
    public void reset(ActionMapping mapping, HttpServletRequest request) {
        if (reset) {
            this.checkboxes = new String[];
            // etc
        }

        reset = true;
    }

    public void doNotReset() {
        reset = false;
    }
}

让 action2 在表单上调用 doNotReset()。

关于java - Struts session 表单 bean 不保留状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4369578/

相关文章:

ms-access - 带有所有选项复选框的多对多 MS Access 表单

php - 如何使用 GET 或 POST 方法将变量传递到 php 中的另一个页面?

php - 数组在 PHP session 中不完整

php 管理 session session

javax.servlet.ServletException : java. lang.NoSuchMethodException:操作[/common/DepartmentAction]不包含指定的方法

java - 为什么泛型方法的定义中有时会省略返回类型之前的尖括号

jquery - 使用 jQuery 和 AJAX 时我应该捕捉按钮单击或表单提交吗?

python - 简单的服务器端 Flask session 变量

java - 'main' 方法中的 JVM 指令 ALOAD_0 指向 'args' 而不是 'this' ?

java - Hibernate 无法访问 phpMyAdmin 插入的数据