gpt4 book ai didi

java - 不使用操作链接在目标操作中设置实例成员值?

转载 作者:行者123 更新时间:2023-11-30 04:28:42 25 4
gpt4 key购买 nike

这是我使用 Action 链的 struts 2 流程

JSP--->Action1--->Action2--->ResultJsp

对于 Action 链接,我的理解是请求从 Action 1转发到 Action 2。所以如果我将一些参数从 Action 1传递到 Action 2它应该设置在新 Action 实例变量中(/为新 Action 创建的值堆栈)。但它没有发生

下面是我的操作代码1

@Result(name = "displayEmployee",type = "chain",
params = {
"namespace", "/employee",
"actionName", "Employee-lookup!search",
"empMode", "true"

})


@Action("display-employee!displayEmployee")
public String displayEmployee() {
return "displayEmployee";
}

现在在操作 2(即 display-employee)中,我有名为 empMode 的 boolean 属性。但我得到的值为 false,尽管我应该得到它 true因为我将它作为结果注释中的属性传递。根据我对 Action 链的理解,所有请求参数都是从action1转发到action2。基本上为 action2 创建了新的值堆栈,其中包含存在的变量行动中1.那么为什么在操作 2 中没有为 empMode 属性设置值 true 呢?

最佳答案

我认为你不能做到这一点,没有提到能够使用链结果类型传递附加参数:http://struts.apache.org/release/2.3.x/docs/action-chaining.html

结果是链类型...因此它将需要解释和处理您的参数,因为此后将开始一个新操作。但是链没有这个设施(看源码):http://grepcode.com/file/repo1.maven.org/maven2/org.apache.struts.xwork/xwork-core/2.3.1.1/com/opensymphony/xwork2/ActionChainResult.java

如果这是正常的重定向,您可以将这些参数添加到请求中,就像您所做的那样。

换句话说,将所需的属性添加到操作中,链将执行您需要的操作,因为链结果没有工具来处理“命名空间”和“操作”之外的属性。

关于java - 不使用操作链接在目标操作中设置实例成员值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15159827/

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