Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Struts 2中保留多个JSP和操作之间的值_Java_Jsp_Struts2_Ognl_Struts2 Interceptors - Fatal编程技术网

Java 在Struts 2中保留多个JSP和操作之间的值

Java 在Struts 2中保留多个JSP和操作之间的值,java,jsp,struts2,ognl,struts2-interceptors,Java,Jsp,Struts2,Ognl,Struts2 Interceptors,我的Struts项目结构如下: page1->action1->page2->action2->page3 我需要的是我在page1的输入标签中输入的值可以在action2中访问 这是我的代码: 第1页: 输入id: 行动1: 添加的公共类扩展了ActionSupport{ 私有int-txtid; //接二连三 @凌驾 公共字符串execute()引发异常{ 返回“成功”; } } 第2页: 您输入的id是: 名字: 姓氏: 年龄: 行动2: 公共类AddForm扩展了Acti

我的Struts项目结构如下:

page1
->
action1
->
page2
->
action2
->
page3

我需要的是我在
page1
的输入标签中输入的值可以在
action2
中访问

这是我的代码:

第1页:


输入id:
行动1:

添加的公共类扩展了ActionSupport{ 私有int-txtid; //接二连三 @凌驾 公共字符串execute()引发异常{ 返回“成功”; } } 第2页:


您输入的id是:

名字: 姓氏: 年龄:
行动2:

公共类AddForm扩展了ActionSupport{
私有字符串txtfname;
私有字符串txtlname;
私人int txtage;
私有int-txtid;
//接球手和接球手
@凌驾
公共字符串execute()引发异常{
返回“成功”;
}
}
把所有的东西都展示出来

第3页:


ID:
名字:
姓氏:
年龄:
这就是我面临的问题,因为
txtid
显示为
null
,从中我推断值没有从
page2
传递到
action2

我想出的一个解决办法是使用


在希望保持字段值从一个操作传递到另一个操作的情况下,可以配置字段的范围。只需在每个操作中放置具有getter和setter的相同字段,在您的情况下,它将是
action1
action2
。字段名为
txtid
。除了不包括在
defaultStack
中之外,您还应该在操作配置中引用它

例如:


如果您的操作需要其他功能,您应该在操作配置中构造自定义堆栈或引用其他拦截器。

为什么要使用页面->操作而不是操作->页面?我需要首先从用户处获取id,这就是为什么必须首先显示第1页。在提交第1页时,struts操作名为action1,然后显示第2页,但您切断了action2,在该操作中,您希望txtid2中有一个值,因此我不明白您想要什么。@RomanC我编辑了我的问题,在第3页中只显示txtfname、txtlname和txtage,从第1页结转过来的txtid为空。这工作得很好,谢谢你的回答!看来我得回去复习一些基础知识了。