我正在使用 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/